package Ġcom . ag m to py . k ocket mq . logging Ċ Ċ import Ġcom . ag m to py . k ocket mq . common . Configuration Ċ import Ġcom . ag m to py . k ocket mq . common . concurrent . Thread Factory Impl Ċ import Ġcom . ag m to py . k ocket mq . common . constant . Logger Name Ċ import Ġcom . ag m to py . k ocket mq . common . names rv . Names rv Config Ċ import Ġcom . ag m to py . k ocket mq . common . util . File Watch Service Ċ import Ġcom . ag m to py . k ocket mq . logging . inner . Internal LoggerFactory Ċ import Ġcom . ag m to py . k ocket mq . logging . kv config . KV Config Manager Ċ import Ġcom . ag m to py . k ocket mq . logging . processor . Cluster Test Request Processor Ċ import Ġcom . ag m to py . k ocket mq . logging . processor . Default Request Processor Ċ import Ġcom . ag m to py . k ocket mq . logging . route info . Broker House keep ing Service Ċ import Ġcom . ag m to py . k ocket mq . logging . route info . Route Info Manager Ċ import Ġcom . ag m to py . k ocket mq . rem oting . Remoting Server Ċ import Ġcom . ag m to py . k ocket mq . rem oting . netty . Net ty Remoting Server Ċ import Ġcom . ag m to py . k ocket mq . rem oting . netty . Net ty Server Config Ċ import Ġjava . util . concurrent .* Ċ Ċ /** Ċ Ġ* Ġname src Controller æī§è¡Į Name Server çļĦ éĢ»è¾ĳ Ċ Ġ*/ Ċ class ĠName srv Controller ( var Ġnames rv Config : ĠName srv Config , Ġvar Ġnet ty Server Config : ĠNet ty Server Config ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog : ĠInternal Logger Ġ= ĠInternal LoggerFactory . getLogger ( Logger Name . NAMES RV _ LOGGER _ NAME ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġkv Config Manager : ĠK V Config Manager ĊĠĠĠ Ġval Ġroute Info Manager : ĠRoute Info Manager ĊĠĠĠ Ġprivate Ġval Ġbroker House keep ing Service : ĠBroker House keep ing Service ĊĠĠĠ Ġval Ġconfiguration : ĠConfiguration ĊĊĠĠĠ Ġ// å»¶ è¿ Ł åĪĿå§ĭåĮĸ - late init ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrem oting Server : ĠRem oting Server ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrem oting Executor : ĠExecutor Service ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfile Watch Service : ĠFile Watch Service ĊĊĠĠĠ Ġ// é»ĺè®¤ æĪĲåĳĺ åıĺéĩı ĊĠĠĠ Ġprivate Ġval Ġscheduled ExecutorService : ĠScheduled ExecutorService Ġ= ĠExec utors . new Single Thread Scheduled Executor ( ĊĠĠĠĠĠĠĠ ĠThread Factory Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" N SS chedule d Thread " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// æŀĦéĢł åĩ½æķ° ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġkv Config Manager Ġ= ĠK V Config Manager ( this ) ĊĠĠĠĠĠĠĠ Ġroute Info Manager Ġ= ĠRoute Info Manager () ĊĠĠĠĠĠĠĠ Ġbroker House keep ing Service Ġ= ĠBroker House keep ing Service () ĊĠĠĠĠĠĠĠ Ġthis . configuration Ġ= ĠConfiguration ( log , ĠarrayOf ( names rv Config , Ġnet ty Server Config )) ĊĠĠĠĠĠĠĠ Ġthis . configuration . set Store Path From Config ( this . names rv Config , Ġ" config Store Path ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// åĪĿå§ĭåĮĸ ĊĠĠĠ Ġfun Ġinitialize (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// 1 . Ġ åĬłè½½ éħįç½®æĸĩä»¶ ĊĠĠĠĠĠĠĠ Ġthis . kv Config Manager . load () ĊĠĠĠĠĠĠĠ Ġ// 2 . ĠåĪĿå§ĭåĮĸ rem oting Server ĊĠĠĠĠĠĠĠ Ġthis . rem oting Server Ġ= ĠNet ty Remoting Server ( this . netty Server Config , Ġthis . broker House keep ing Service ) ĊĠĠĠĠĠĠĠ Ġ// 3 . ĠåĪĽå»º è¿ľç¨ĭ æľįåĬ¡ çº¿ç¨ĭ æ±ł ( æł¹æį® config éħįç½®æĸĩä»¶ åĪĽå»º é»ĺè®¤ çļĦ å¤§å°ı çļĦ åĽºå®ļ çº¿ç¨ĭ æ±ł ) ĊĠĠĠĠĠĠĠ Ġthis . rem oting Executor Ġ= ĠThreadPool Executor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . netty Server Config . getServer Worker Threads (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . netty Server Config . getServer Worker Threads (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . MILLISECONDS , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinked BlockingQueue (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread Factory Impl (" Remoting Executor Thread _ ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// 4 . Ġ æ³¨åĨĮ Names rv è¯·æ±Ĥ çļĦ å¤ĦçĲĨ åĻ¨ ĊĠĠĠĠĠĠĠ Ġthis . register Processor () ĊĊĠĠĠĠĠĠĠ Ġ// 5 . Ġ å®ļ æľŁ æ¸ħ çĲĨ æĹł æķĪ broker (@ TODO Ġ åºĶ æĬ½ è±¡ ä¸º ç»Łä¸Ģ çļĦ names rv çļĦ å®ļæĹ¶ ä»»åĬ¡ ) ĊĠĠĠĠĠĠĠ Ġthis . scheduled ExecutorService . schedule At Fixed Rate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġroute Info Manager . scan Not Active Broker () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// 6 . Ġ æīĵåį° names rv éħįç½® ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġthis . scheduled ExecutorService . schedule At Fixed Rate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġkv Config Manager . print All Period ically () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// 7 . tls çĽ¸åħ³ æĵįä½ľ ĊĠĠĠĠĠĠĠ Ġ//@ TODO ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲĳ Remoting Server æ³¨åĨĮ Names rv è¯·æ±Ĥ å¤ĦçĲĨ åĻ¨ , ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġregister Processor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// åĪ¤æĸŃ æĺ¯åĲ¦ ä¸º éĽĨç¾¤ æµĭè¯ķ ( éĽĨç¾¤ æµĭè¯ķ @ TODO ) ĊĠĠĠĠĠĠĠ Ġif Ġ( names rv Config . is Cluster Test ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrem oting Server . register Default Processor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCluster Test Request Processor ( this , Ġnames rv Config . get Product Env Name ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrem oting Executor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrem oting Server . register Default Processor ( Default Request Processor ( this ), Ġrem oting Executor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġstart ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshutdown () Ġ{ ĊĊĠĠĠ Ġ} Ċ }