V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bbbus
V2EX  ›  编程

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

  •  
  •   bbbus · 2019-06-11 14:29:05 +08:00 · 5000 次点击
    这是一个创建于 2021 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前提: 用 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 在一个或几个节点挂掉的时候, 服务保持正常且不中断.

    5 条回复    2019-06-20 15:46:29 +08:00
    HuHui
        1
    HuHui  
       2019-06-11 15:01:04 +08:00 via Android
    CAP 选 AP 的?
    HuHui
        2
    HuHui  
       2019-06-11 15:02:39 +08:00 via Android
    @HuHui 看错问题了,用 VIP 应该可以解决
    bbbus
        3
    bbbus  
    OP
       2019-06-11 16:23:04 +08:00
    @HuHui
    viper 和 confd 这种可能不太合适. etcd 好像没有一个统一的地址, 这个让人有点疑惑.
    bbbus
        4
    bbbus  
    OP
       2019-06-11 16:38:59 +08:00
    我现在考虑用 nginx 做一个 etcd 集群的负载均衡器,所有的 server 和 client 都连 nginx 的 IP,就不用考虑 etcd 哪个节点挂掉的情况了,不知道这个姿势对不对。
    tao147258
        5
    tao147258  
       2019-06-20 15:46:29 +08:00
    @bbbus nginx 挂了呢¿
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4191 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:31 · PVG 13:31 · LAX 21:31 · JFK 00:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.