nacos源码分析总览

服务发现部分:

觉得不错的地方
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



配置中心部分

觉得不错的地方
1 存储还是mysql,不过判断数据是否有变化是根据updateTime,定时根据updateTime范围找有不有数据。
而我们的做法是每次配置变化就向事件表插一条数据,定时看事件表有不有新的数据。感觉没有nacos的做法好,nacos可以限定自己关心的范围,而事件必然是全局的,扩展性不是很好。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 22,716评论 8 227
  • 问:如何借钥匙看房? 答:首先要联系业主确定钥匙放在那间地产公司。借钥匙正常情况要押工作证或名片,以防冒认领取。大...
    通菜猪颈肉阅读 44评论 1 2
  • 今天的主要安排是讲座和惠州训战结合的课题解读。郭城老师作为一名著名自媒体人和多项节目策划人,看待问题的角度也十分独...
    Tiffany哦阅读 92评论 0 5
  • 正面管教一个月践行的收获与成长: 之前觉得三个月好久,然而一个月不知不觉过去了。经过一个月的摸爬滚打,最大的感受就...
    自然之爱母乳指导瑾瑜阅读 49评论 0 0