
集群搭建好之后需要通过 HTTP API 来进行服务的注册 /发现等请求, 那集群是怎么对外提供 IP 地址的。比如我有三个局域网地址:
但如果 192.168.10.11 的机器挂掉了。我就需要替换请求的 IP 地址。consul 集群有向外提供固定 IP 的方法吗?这样不管其中哪一个挂掉了。我的请求地址都是不变的
1 ysicing 2021-11-17 17:22:10 +08:00 consul 不支持吧?这种不是需要一个外部的负载均衡来做么 |
2 geligaoli 2021-11-17 17:23:10 +08:00 使用 consul 集群,是在本地建立一个 consul client ,本地的访问都通过 client 来转发到 集群。 那个本地的 client 会自动维护集群列表。 |
3 geligaoli 2021-11-17 17:26:31 +08:00 集群里的 consul ,多个参数 -server ,本地 当 client 的没有这个参数。 |
4 goforwardv2 OP @geligaoli 关键是这个 client 挂掉怎么办 |
5 goforwardv2 OP @ysicing 这个一般是怎么搭建的 consul 集群之前再另外搭建负载均衡吗 |
6 Rwing 2021-11-17 18:23:42 +08:00 让我想一想,我记得好像有自带的方案 |
7 ohooo 2021-11-17 18:30:55 +08:00 不是有健康检查吗,服务多实例服务名是一样的,client 有通过服务名 filter service 的 api,服务挂了会返回健康检查通过的其他 ip+port 给你 |
8 th00000 2021-11-17 18:47:38 +08:00 Consul 启动后会自己注册自己, 你可以用 xxx.service.consul 访问到 不过为什么要访问 Consul 的 server 呢? 理论上应该不存在这种需求才对 你要访问任何服务都是 foobar.server.consul, 你可以通过访问 Consul client 来获取你想要的东西, 而不是直接访问 server |
9 th00000 2021-11-17 18:51:28 +08:00 client 确实有概率挂掉, 不过可以将它封装为一个类似 systemd 的服务 Consul client 作为一个 sidecar 性能及其强大, 想挂掉非常难, 线上这么多年, 从来没碰见过 |
10 goforwardv2 OP @th00000 这个怎么封装 有参考文档之类的吗 |
11 MrEatChicken 2021-11-18 12:48:13 +08:00 @th00000 Consul 启动后会自己注册自己, 你可以用 xxx.service.consul 访问到 不过为什么要访问 Consul 的 server 呢? 理论上应该不存在这种需求才对 你要访问任何服务都是 foobar.server.consul, 你可以通过访问 Consul client 来获取你想要的东西, 而不是直接访问 server 老哥正解 |