《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》

摘要: 原创出处 https://www.jianshu.com/p/20ddf3bc6f8e 「黄云斌」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

服务发现部分:

觉得不错的地方

1、自己实现了一个简单的raft,就是说不再依赖etcd这种分布式的东西,也不依赖redis或者mysql这种存储的东西。就是自己搞定。

2、变化的通知push采用的是udp,我觉得这种比tcp长连接好很多,比我们的http longpoling也要好,比grpc的http/2也要好。老实说通知真的不多,为什么当初我们就没想到用udp。

3、push用udp有什么不好的地方吗,不好地方就是sdk要开一个udp端口,感觉其实也还好吧。

4、代码的扩展性比较好,健康检查能方便的支持tcp,http和mysql,支持mysql这个挺有意思的,是不是可以理解为db也是一种服务。

配置中心部分

觉得不错的地方

1、存储还是mysql,不过判断数据是否有变化是根据updateTime,定时根据updateTime范围找有不有数据。

而我们的做法是每次配置变化就向事件表插一条数据,定时看事件表有不有新的数据。感觉没有nacos的做法好,nacos可以限定自己关心的范围,而事件必然是全局的,扩展性不是很好。

文章目录
  1. 1. 服务发现部分:
  2. 2. 配置中心部分