yulangz opened a new pull request, #7301:
URL: https://github.com/apache/rocketmq/pull/7301

   ### Which Issue(s) This PR Fixes
   
   <!-- Please ensure that the related issue has already been created, and 
[link this pull request to that issue using 
keywords](<https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword>)
 to ensure automatic closure. -->
   
   Fixes #7300 
   ### Brief Description
   
   Use [JRaft](https://github.com/sofastack/sofa-jraft) to Implement Controller.
   
   #### New Configuration
   ```text
   # 可选 jRaft、DLedger,默认 DLedger
   controllerType=jRaft
   
   # jRaft 相关
   # 选举超时时间,默认 1 秒
   jRaftElectionTimeoutMs=1000
   # 进行 Snapshot 的间隔,默认 1 小时,此处建议更长的时间,如 1 天、3 天
   jRaftSnapshotIntervalSecs=3600
   # group id
   jRaftGroupId=jRaft-Controller
   # 本机 jraft 的地址
   jRaftServerId=localhost:9880
   # jraft 组的地址
   jRaftInitConf=localhost:9880,localhost:9881,localhost:9882
   # jRaft Controller 中,jRaft 与 提供给 Broker 的 RPCService 不共用套接字资源,下面设置的是 
Controller 上监听 Broker RPC 的端口。注意 IP 与端口要与 jRaftInitConf 一一对应。
   jRaftControllerRPCAddr=localhost:9770,localhost:9771,localhost:9772
   ```
   #### Design
   On the Broker side, the JRaft Controller did not make any modifications and 
continued to use all the designs and concepts of DLedger Controller, such as 
Epoch and SyncStateSet.
   On the Controller side, JRaft Controller not only migrated, but also 
refactored the original components and code logic, not only supporting SnapShot 
functionality, but also solving the unreasonable aspects of the original 
design, making the Controller conform to linear consistency.
   ### How Did You Test This Change?
   
   Use [Openchaos](https://github.com/openmessaging/openchaos) to test it.
   <!-- In order to ensure the code quality of Apache RocketMQ, we expect every 
pull request to have undergone thorough testing. -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to