先抛出几个问题带着问题去学习
1 HA的整体流程
2 对应的api的关键点
代码1 master启动监听端口,等待slave连接
从broker 启动流程-HAClient
同步主从模式的唤醒 master写入数据后阻塞处理
3 主从机制:
从主broker拉取数据会以目前未处理的消息占比物理内存大小得比例决定下次拉取从从节点还是主节点拉取数据。
4RocketMQ主从同步架构中,如果主服务器宕机,从服务器会接管消息消费,此时消息消费进度如何保持,当主服务器恢复后,消息消费者是从主拉取消息还是从从服务器拉取,主从服务器之间的消息消费进度如何同步?
答案:
只要消费端不重启,不重新拉取,不会照成重复消费。
过程:
集群模式:正常情况下,客户消费完后,会先写入内存缓存,然后固定间隔同步消费进度到master broker 负责同步到slave中,主挂掉后。只要消费端不重启,从接替主,会记录消费进度。当主重新启动后,拉取消息得时候,会恢复向主同步消费进度,从继续从主同步消息进度。
主重启后恢复正常服务