|
欢迎加入运维网交流群:263444886 
本次更新主要是基于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的异步调用方式。 |
|
|