https://my.oschina.net/u/3790005/blog/3024852
简单总结:
学到了什么?
1.长连接编程模型⾥⼼跳的实现原理
2.多线程编程中读写锁的经典使⽤⽅式
3.追求简单⾼效⼜可靠的实现⽅式
一、brokerA,borkerB注册到 nameServer 注册中心中,并通过长连接心跳方策实现是否存活(注册功能,路由剔除),
默认10秒扫描一次,超过120秒移除。
心跳过程中会记录心跳数据,为了防止安全问题,使用了ReadwriteLock(即读多写少)
二、发现功能通过produce自己去拉取nameServer注册中心的注册表信息(发现功能)
三、produce通过获取注册表中的信息发送,通过重试机制和负载策略解决高可用,也体高效新
四、consumer通过注册中心获取broker获取信息,通过ACK签证机制保证可靠性