Skip to content

Commit 42367c5

Browse files
authored
[ISSUE #4020]⚡️Improve name server readiness checks and update log messages for clarity (#4021)
1 parent aef2115 commit 42367c5

File tree

1 file changed

+15
-27
lines changed

1 file changed

+15
-27
lines changed

rocketmq-namesrv/src/processor/client_request_processor.rs

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
use std::sync::atomic::AtomicBool;
1818
use std::sync::atomic::Ordering;
19-
use std::time::Duration;
2019

2120
use cheetah_string::CheetahString;
2221
use rocketmq_common::common::FAQUrl;
@@ -85,29 +84,26 @@ impl ClientRequestProcessor {
8584
request: &mut RemotingCommand,
8685
) -> rocketmq_error::RocketMQResult<Option<RemotingCommand>> {
8786
let request_header = request.decode_command_custom_header::<GetRouteInfoRequestHeader>()?;
87+
let wait_seconds = self
88+
.name_server_runtime_inner
89+
.name_server_config()
90+
.wait_seconds_for_service as u64;
91+
let elapsed_millis =
92+
TimeUtils::get_current_millis().saturating_sub(self.startup_time_millis);
8893
let namesrv_ready = self.need_check_namesrv_ready.load(Ordering::Relaxed)
89-
&& TimeUtils::get_current_millis() - self.startup_time_millis
90-
>= Duration::from_secs(
91-
self.name_server_runtime_inner
92-
.name_server_config()
93-
.wait_seconds_for_service as u64,
94-
)
95-
.as_millis() as u64;
96-
if self
94+
&& elapsed_millis >= wait_seconds * 1000;
95+
96+
let need_wait_for_service = self
9797
.name_server_runtime_inner
9898
.name_server_config()
99-
.need_wait_for_service
100-
&& !namesrv_ready
101-
{
102-
warn!(
103-
"name remoting_server not ready. request code {} ",
104-
request.code()
105-
);
99+
.need_wait_for_service;
100+
if need_wait_for_service && !namesrv_ready {
101+
warn!("name server not ready. request code {} ", request.code());
106102
return Ok(Some(
107103
RemotingCommand::create_response_command_with_code(
108104
RemotingSysResponseCode::SystemError,
109105
)
110-
.set_remark("name remoting_server not ready"),
106+
.set_remark("name server not ready"),
111107
));
112108
}
113109
match self
@@ -118,7 +114,7 @@ impl ClientRequestProcessor {
118114
None => Ok(Some(
119115
RemotingCommand::create_response_command_with_code(ResponseCode::TopicNotExist)
120116
.set_remark(format!(
121-
"No topic route info in name remoting_server for the topic:{}{}",
117+
"No topic route info in name server for the topic:{}{}",
122118
request_header.topic,
123119
FAQUrl::suggest_todo(FAQUrl::APPLY_TOPIC_URL)
124120
)),
@@ -143,15 +139,7 @@ impl ClientRequestProcessor {
143139
);
144140
topic_route_data.order_topic_conf = order_topic_config;
145141
};
146-
/*let standard_json_only = request_header.accept_standard_json_only.unwrap_or(false);
147-
let content = if request.version() >= RocketMqVersion::into(RocketMqVersion::V494)
148-
|| standard_json_only
149-
{
150-
//topic_route_data.encode()
151-
topic_route_data.encode()
152-
} else {
153-
topic_route_data.encode()
154-
};*/
142+
//Rust only support standard JSON serialization
155143
let content = topic_route_data.encode()?;
156144
Ok(Some(
157145
RemotingCommand::create_response_command_with_code(ResponseCode::Success)

0 commit comments

Comments
 (0)