0

我正在学习 Consul。对 Spring Cloud Consul 和 Consul Client 之间的关系感到困惑。

我发现,在 Spring Boot 应用程序中,我们可以使用 @EnableDiscoveryClient 联系 Consul Agent。但是如果我想选举自己服务的leader,Spring Cloud Consul可以提供这些接口吗?还是需要在consul-client上中继?

4

1 回答 1

1

consul集群的leader选举是基于RAFT的consul内部算法,是一种共识算法,更多信息可以看:

https://www.consul.io/docs/internals/consensus.html

consul 的客户端是 Consul 公开的 API REST 的包装器,通常你必须在负载均衡器后面有你的 consul 服务器,并且这个 url 是你在客户端中配置的,例如在 spring boot 中。

spring.cloud.consul.host = url_load_balancer
spring.cloud.consul.port = port_load_balancer

总之,客户端无法管理领事集群的领导者选举,但我发现最接近的方法是:

https://www.consul.io/docs/guides/leader-election.html

我希望它对你有帮助

于 2018-02-22T16:02:41.603 回答