有没有路过的大佬,线上跑的正是 Consul 的注册中心,请教一下 Consul 的部署方式。
目前了解到的一种部署方式是部署 3-5 台 Server,然后每台业务服务器上跑一个 Client,但是每台业务机器上都装上 Consul 运维可能不太愿意,线上已经跑了 100 多台左右的服务器,现在做架构升级要加一个注册中心,选型正是 Consul。
有没有别的已经实践过的可靠的部署方式呢?各位。
还有个问题,为什么网上都不推荐直接使用 Consul-Server 的模式,而是通过 Client 转发了一次。
1
abmin521 2019-07-06 14:49:03 +08:00 via Android
client 是为了跨 dc 的吧 我感觉要是能实战自注册 自下线 都是可以的
|
2
mritd 2019-07-06 15:27:40 +08:00 1
亲身踩坑:
当你一个服务注册到 Consul client 后,所有健康检测由这个单一的 client 进行,如果这个 client 挂了,那么集群整体认为 client 上注册的服务都挂了;所以最稳妥的情况就是 每个应用一个 consul client ;对于 k8s 集群的话目前我们是每个 pod 内置一个 consul client 容器,然后应用注册到 127.0.0.1 |
3
salamanderMH 2019-07-06 16:08:16 +08:00
同意二楼看法,因为之前在 github 上提了一个 issue,也是这么说的
|
6
mritd 2019-07-07 09:04:30 +08:00 via iPhone
@salamanderMH #3 我就是被坑了,看到那个 issue 了( ´▽`)
|
7
mritd 2019-07-07 09:06:07 +08:00 via iPhone
@snowfuck #5 有些东西不是单单你能决定得了的,比如我们有个应用 grpc 服务发现,开发选择了 consul,我们这边只能给解决方案
|
8
mritd 2019-07-07 09:08:25 +08:00 via iPhone
还有个恶心的问题是有时候服务优雅关闭不正常会导致 consul 中有很多状态不健康的服务,看着难受单不影响使用,我弄了一个小工具 有需要的可以拿去 github gozap/cclean
|
10
lixueyu001 OP @mritd 受教了 👍
|