MyThrift V0.3 增加注册中心实现服务注册和发现

来源: 投稿
2016-10-30

本次更新主要是基于0.2的基础上增加了服务注册中心,基于ZooKeeper.

具体细节:

1) Server端

继承thrift的TThreadedSelectorServer类,覆盖setServing方法,使得thrift服务器端口处于监听状态时,才开始启动zk线程进行服务注册,避免客户端过早调用失败

注册时指定服务的版本号,以便客户端根据版本号进行调用

接收到zk的connected,reconnected消息时,当注册临时节点失败时,会在若干sessionTimeout周期后继续尝试,否则会造成server端机器没有注册的结果

 2)Client端

客户端连接上ZK后,才容许client的自身网络进程启动(通过调用ZkReadyListener.ready();),避免没有拿到server端的机器就有请求进来导致客户的请求处理失败

针对多个服务内包含同一个机器ip&port,复用连接池

---

目前所有技术细节全部暴露,所以后续计划:

0.4版:考虑基于spring,swift等技术屏蔽技术细节,适合用户快速上手。

0.5:考虑吸收netflix的若干优秀组件的原理进来,完成熔断、降级、容错,限流等特性,以及调研使用连接池还是单连接,调研thrift的client的异步调用方式。

展开阅读全文
25 收藏
分享
加载中
更多评论
10 评论
25 收藏
分享
返回顶部
顶部