如何让 etcd 服务高可用且不中断

2019-06-11 14:29:05 +08:00
 bbbus

前提: 用 Docker 部署了三个 etcd container. 然后又跑了两个 rpc server, 并通过服务注册提交 rpc server 信息到 etcd. 另外再运行了 n 个 rpc client, 先从 etcd 获取 server 节点,再通过 RPC 调用 Server 的方法.

遇到的问题: Stop 掉一个 etcd 节点, rpc client 和 server 有几个会报错, 提示无法连接到 etcd 2380 端口. 重新开起停掉的 etcd 节点以后就恢复正常了.

所以想问问大家的 etcd 都是怎么玩的, 如何能保证 etcd 在一个或几个节点挂掉的时候, 服务保持正常且不中断.

4818 次点击
所在节点    编程
5 条回复
HuHui
2019-06-11 15:01:04 +08:00
CAP 选 AP 的?
HuHui
2019-06-11 15:02:39 +08:00
@HuHui 看错问题了,用 VIP 应该可以解决
bbbus
2019-06-11 16:23:04 +08:00
@HuHui
viper 和 confd 这种可能不太合适. etcd 好像没有一个统一的地址, 这个让人有点疑惑.
bbbus
2019-06-11 16:38:59 +08:00
我现在考虑用 nginx 做一个 etcd 集群的负载均衡器,所有的 server 和 client 都连 nginx 的 IP,就不用考虑 etcd 哪个节点挂掉的情况了,不知道这个姿势对不对。
tao147258
2019-06-20 15:46:29 +08:00
@bbbus nginx 挂了呢¿

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/572799

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX