16
16
*/
17
17
use std:: net:: SocketAddr ;
18
18
19
- use rocketmq_common:: common:: { broker:: broker_config:: BrokerConfig , config_manager:: ConfigManager } ;
19
+ use rocketmq_common:: common:: config_manager:: ConfigManager ;
20
+ use rocketmq_remoting:: {
21
+ remoting:: RemotingService , server:: rocketmq_server:: RocketmqDefaultServer ,
22
+ } ;
20
23
use rocketmq_store:: {
21
24
base:: store_enum:: StoreType , config:: message_store_config:: MessageStoreConfig ,
22
25
log_file:: MessageStore , message_store:: local_file_store:: LocalFileMessageStore ,
@@ -26,6 +29,7 @@ use rocketmq_store::{
26
29
use tracing:: { info, warn} ;
27
30
28
31
use crate :: {
32
+ broker_config:: BrokerConfig ,
29
33
broker_outer_api:: BrokerOuterAPI ,
30
34
client:: {
31
35
default_consumer_ids_change_listener:: DefaultConsumerIdsChangeListener ,
@@ -36,6 +40,7 @@ use crate::{
36
40
cold_data_cg_ctr_service:: ColdDataCgCtrService ,
37
41
cold_data_pull_request_hold_service:: ColdDataPullRequestHoldService ,
38
42
} ,
43
+ controller:: replicas_manager:: ReplicasManager ,
39
44
filter:: manager:: consumer_filter_manager:: ConsumerFilterManager ,
40
45
longpolling:: {
41
46
longpolling_service:: pull_request_hold_service:: PullRequestHoldService ,
@@ -96,6 +101,9 @@ pub struct BrokerController {
96
101
pub ( crate ) broker_outer_api : BrokerOuterAPI ,
97
102
pub ( crate ) message_store : Option < Box < dyn MessageStore > > ,
98
103
pub ( crate ) timer_message_store : Option < TimerMessageStore > ,
104
+ pub ( crate ) replicas_manager : Option < ReplicasManager > ,
105
+ pub ( crate ) broker_server : Option < RocketmqDefaultServer > ,
106
+ pub ( crate ) fast_broker_server : Option < RocketmqDefaultServer > ,
99
107
}
100
108
101
109
impl BrokerController {
@@ -137,12 +145,33 @@ impl BrokerController {
137
145
broker_outer_api : Default :: default ( ) ,
138
146
message_store : None ,
139
147
timer_message_store : None ,
148
+ replicas_manager : None ,
149
+ broker_server : None ,
150
+ fast_broker_server : None ,
140
151
}
141
152
}
142
153
}
143
154
144
155
impl BrokerController {
145
- pub async fn start ( & mut self ) { }
156
+ pub async fn start ( & mut self ) {
157
+ if self . message_store . is_some ( ) {
158
+ let _ = self . message_store . as_mut ( ) . unwrap ( ) . start ( ) ;
159
+ }
160
+
161
+ if let Some ( ref mut timer_message_store) = self . timer_message_store {
162
+ timer_message_store. start ( ) ;
163
+ }
164
+
165
+ if let Some ( ref mut replicas_manager) = self . replicas_manager {
166
+ replicas_manager. start ( ) ;
167
+ }
168
+
169
+ if let Some ( ref mut broker_server) = self . broker_server {
170
+ broker_server. start ( ) . await ;
171
+ }
172
+
173
+ //other service start
174
+ }
146
175
147
176
pub fn initialize ( & mut self ) -> bool {
148
177
let mut result = self . initialize_metadata ( ) ;
@@ -206,7 +235,13 @@ impl BrokerController {
206
235
result
207
236
}
208
237
209
- fn initialize_remoting_server ( & mut self ) { }
238
+ fn initialize_remoting_server ( & mut self ) {
239
+ let broker_server =
240
+ RocketmqDefaultServer :: new ( self . broker_config . broker_server_config . clone ( ) ) ;
241
+ self . broker_server = Some ( broker_server) ;
242
+
243
+ // fast broker server implementation in future versions
244
+ }
210
245
211
246
fn initialize_resources ( & mut self ) { }
212
247
0 commit comments