Skip to content

Commit cf7fb50

Browse files
authored
[ISSUE #1150]Use CheetahString to replace std String in MessageQueue (#1151)
1 parent 092be13 commit cf7fb50

File tree

6 files changed

+23
-20
lines changed

6 files changed

+23
-20
lines changed

Cargo.lock

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rocketmq-broker/src/processor/admin_broker_processor/consumer_request_handler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ impl ConsumerRequestHandler {
157157

158158
for i in 0..topic_config.unwrap().get_read_queue_nums() {
159159
let mut mq = MessageQueue::new();
160-
mq.set_topic(topic.clone());
161-
mq.set_broker_name(self.inner.broker_config.broker_name.clone());
160+
mq.set_topic(topic.to_string().into());
161+
mq.set_broker_name(self.inner.broker_config.broker_name.clone().into());
162162
mq.set_queue_id(i as i32);
163163

164164
let mut offset_wrapper = OffsetWrapper::new();

rocketmq-broker/src/processor/admin_broker_processor/topic_request_handler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,8 +448,8 @@ impl TopicRequestHandler {
448448
let mut map = HashMap::new();
449449
for i in 0..max_queue_nums {
450450
let mut message_queue = MessageQueue::new();
451-
message_queue.set_topic(topic.to_string());
452-
message_queue.set_broker_name(self.inner.broker_config.broker_name.clone());
451+
message_queue.set_topic(topic.into());
452+
message_queue.set_broker_name(self.inner.broker_config.broker_name.clone().into());
453453
message_queue.set_queue_id(i as i32);
454454
let mut topic_offset = TopicOffset::new();
455455
let min = std::cmp::max(

rocketmq-broker/src/processor/default_pull_message_result_handler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,8 @@ impl PullMessageResultHandler for DefaultPullMessageResultHandler {
253253
.read_custom_header_mut::<PullMessageResponseHeader>()
254254
.unwrap();
255255
let mut mq = MessageQueue::new();
256-
mq.set_topic(request_header.topic.to_string());
257-
mq.set_broker_name(self.broker_config.broker_name.clone());
256+
mq.set_topic(request_header.topic.clone());
257+
mq.set_broker_name(self.broker_config.broker_name.clone().into());
258258
mq.set_queue_id(request_header.queue_id.unwrap());
259259

260260
let offset_moved_event = OffsetMovedEvent {

rocketmq-client/src/base/client_config.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use std::sync::atomic::Ordering;
2020
use std::sync::Arc;
2121
use std::time::Duration;
2222

23+
use cheetah_string::CheetahString;
2324
use rocketmq_common::common::message::message_queue::MessageQueue;
2425
use rocketmq_common::utils::name_server_address_utils::NameServerAddressUtils;
2526
use rocketmq_common::utils::name_server_address_utils::NAMESRV_ENDPOINT_PATTERN;
@@ -142,15 +143,15 @@ impl ClientConfig {
142143
)
143144
}
144145

145-
pub fn queue_with_namespace(&mut self, queue: MessageQueue) -> MessageQueue {
146+
pub fn queue_with_namespace(&mut self, mut queue: MessageQueue) -> MessageQueue {
146147
if let Some(namespace) = self.get_namespace() {
147148
if !namespace.is_empty() {
148-
let mut message_queue = queue.clone();
149-
message_queue.set_topic(NamespaceUtil::wrap_namespace(
149+
let topic = CheetahString::from_string(NamespaceUtil::wrap_namespace(
150150
namespace.as_str(),
151151
queue.get_topic(),
152152
));
153-
return message_queue;
153+
queue.set_topic(topic);
154+
return queue;
154155
}
155156
}
156157
queue

rocketmq-common/src/common/message/message_queue.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,23 @@ use std::fmt;
2020
use std::hash::Hash;
2121
use std::hash::Hasher;
2222

23+
use cheetah_string::CheetahString;
2324
use serde::Deserialize;
2425
use serde::Serialize;
2526

2627
#[derive(Debug, Clone, Serialize, Deserialize)]
2728
#[serde(rename_all = "camelCase")]
2829
pub struct MessageQueue {
29-
topic: String,
30-
broker_name: String,
30+
topic: CheetahString,
31+
broker_name: CheetahString,
3132
queue_id: i32,
3233
}
3334

3435
impl MessageQueue {
3536
pub fn new() -> Self {
3637
MessageQueue {
37-
topic: String::new(),
38-
broker_name: String::new(),
38+
topic: CheetahString::new(),
39+
broker_name: CheetahString::new(),
3940
queue_id: 0,
4041
}
4142
}
@@ -49,8 +50,8 @@ impl MessageQueue {
4950
}
5051

5152
pub fn from_parts(
52-
topic: impl Into<String>,
53-
broker_name: impl Into<String>,
53+
topic: impl Into<CheetahString>,
54+
broker_name: impl Into<CheetahString>,
5455
queue_id: i32,
5556
) -> Self {
5657
MessageQueue {
@@ -65,7 +66,7 @@ impl MessageQueue {
6566
}
6667

6768
#[inline]
68-
pub fn set_topic(&mut self, topic: String) {
69+
pub fn set_topic(&mut self, topic: CheetahString) {
6970
self.topic = topic;
7071
}
7172

@@ -74,7 +75,7 @@ impl MessageQueue {
7475
&self.broker_name
7576
}
7677

77-
pub fn set_broker_name(&mut self, broker_name: String) {
78+
pub fn set_broker_name(&mut self, broker_name: CheetahString) {
7879
self.broker_name = broker_name;
7980
}
8081

0 commit comments

Comments
 (0)