如何使用etcd构建高性能的服务发现?

时间:2019-03-19 06:14:49

标签: service-discovery etcd

在这里,我画了一个服务发现过程。 enter image description here

在此过程中: 1.通过HaProxy或LVS的客户端连接服务。 2. HaProxy或LVS将客户端请求传递给代理节点。 3.代理节点使用etcd查询服务地址。 4. etcd返回服务地址。 5.代理将服务调用路由到正确的节点。

实际上,吞吐量的瓶颈是过程画面中的步骤1.2-步骤1.3和步骤2.2-步骤2.3。

由于来自etcd的查询不是一项快速的操作,因此etcd群集(基于筏)的性能甚至低于单个节点。

实际上,在大多数情况下,服务节点更新是一个低频事件,但是获取服务节点信息是一个高频事件。

我应该如何改进流程? 在代理中缓存服务节点信息,并且代理订阅从etcd更新的相关服务信息? (但是,如果这样做,则更新服务节点信息和通知代理之间会有间隙。)

0 个答案:

没有答案