服务发现部分:
觉得不错的地方
1 自己实现了一个简单的raft,就是说不再依赖etcd这种分布式的东西,也不依赖redis或者mysql这种存储的东西。就是自己搞定。
2 变化的通知push采用的是udp,我觉得这种比tcp长连接好很多,比我们的http longpoling也要好,比grpc的http/2也要好。老实说通知真的不多,为什么当初我们就没想到用udp。
push用udp有什么不好的地方吗,不好地方就是sdk要开一个udp端口,感觉其实也还好吧。
3 代码的扩展性比较好,健康检查能方便的支持tcp,http和mysql,支持mysql这个挺有意思的,是不是可以理解为db也是一种服务。
raft部分源码分析:
raft如何心跳保持:https://www.jianshu.com/p/b0cdaa64688e
raft如何选举:https://www.jianshu.com/p/5a2d965174ae
raft如何发布内容:https://www.jianshu.com/p/3e40376a34db
raft如何保证内容一致:https://www.jianshu.com/p/b30245d1713e
心跳续约部分源码分析:https://www.jianshu.com/p/29d36e2e9395
健康检查源码分析:https://www.jianshu.com/p/f293ac2fd3e5
服务注册发现分析:
如何实现注册发现:https://www.jianshu.com/p/e1e3ecedc8b3
如何下线被kill -9的实例:https://www.jianshu.com/p/661498752ab9