etcd注册的节点变动通知
Closed this issue · 4 comments
billowqiu commented
简单看了下服务端对etcd的处理,好像没有使用etcd的watch机制:https://coreos.com/etcd/docs/latest/v2/api.html#waiting-for-a-change
那注册的服务上下线这块,是怎么感知的呢?
billowqiu commented
再仔细看了下文档,貌似服务注册与发现并没有依赖etcd,只是将其作为了元数据的存储在用。。。
loveyacper commented
您好。tseer在设计时希望能够做到对第三方服务零侵入,比如你有几个memcache服务进程,希望能通过tseer访问;是需要手工操作的:在web界面,手动添加路由;同样,新的memcache节点加入也需要在页面手动注册路由。
服务的容错是在agent侧做的,tseer api可以上报调用结果给agent,agent据此去屏蔽故障节点。
billowqiu commented
嗯,这种零侵入更通用,完全依赖etcd对于非自研组件确实不太友好
loveyacper commented
另外一个重要原因:etcd或zk都是CP的系统,而名字服务一般来说不需要C,只要最终一致性,但是要求A。另外ZK或etcd的扩展性并不是很好(性能会下降),因此不会直接做名字服务,而是做元数据存储和选主。