【RPC】一步一步实现基于netty+zookeeper的RPC框架(一)
随着分布式架构运用的越来越多,RPC框架成为了我们不得不掌握的知识,这里一步一步来手写一个简单的RPC框架,以博文作为记录及自我监督。 首先是技术选型,这边我选用的是当前比较流行的Netty+Zookeeper来实现,通过zookeeper的特性来实现服务注册与发现,通信则使用netty框架。 这里贴出github代码地址,想直接看代码的可以直接下载运行: https://github.com/whiteBX/wrpc 这里先来讲服务注册发现原理: 利用zookeeper的创建临时节点和watcher机制,可以做到在一个服务下注册多个服务器地址,并且在节点发生变动时通过watcher动态更新服务器列表,来达到在新增/修改/删除时自动注册发现/删除/更新服务器连接信息 .这里说一点,zookeeper的增删改操作会交由leader去处理,所以这里不用担心并发问题. zookeeper相关代码如下: public class ZKClient { /** * 获取zookeeper连接 * * @param connectString * @param sessionTimeout * @return */ public ZooKeeper newConnection ( String connectString , int sessionTimeout ) { ZooKeeper