如何解决带有 Ocelot 的 Consul 集群不使用所有服务
我有两台服务器,都运行 Ocelot API 网关,并且都有 Consul。 2 个 Consul 实例是集群的。我在每台服务器上配置 Ocelot 以引用其本地 Consul 以进行服务发现。在每台服务器上,我还有一些注册到本地 Consul 实例的 API。让我们称它们为 API A、B 和 C。
-
似乎每个服务器上的 Ocelot 只将请求路由到本地 Consul 实例中注册的服务。 Consul 是集群的,所以我希望在每个实例中注册的服务基本上是共享的,并且全部返回给 Ocelot 进行负载平衡,这意味着任一服务器上的 Ocelot 应该有 6 个 API(2 个“A”api,2 个“B”api和 2 个“C”) ' api)。当前配置意味着,如果任一 Consul 实例中的注册服务出现故障,我的系统将不会进行故障转移并开始出错。例如,如果第一个服务器上的 API 'A' 出现故障,则第一个 Ocelot 实例在需要向 API 'A' 发送请求时会出错。
-
我不明白 Consul 集群的好处。如果我的任何一个 Consul 实例出现故障,那么相应服务器的 API 网关 (Ocelot) 就会出现故障,并且发送到该服务器上的 Ocelot 的任何请求都会出错。通过将 Ocelot 指向作为集群一部分的 Consul 实例,我假设了一些内置的故障转移逻辑,这意味着如果 Consul 实例出现故障,系统将故障转移到集群内的另一个 Consul 实例。
所以我的两个问题是:为什么 Ocelot 不利用在属于集群的两个 Consul 实例中注册的所有 API?当 1 个 Consul 实例出现故障,并且有一个 Consul 集群时,为什么 Ocelot 没有检测到并开始引用同一集群的另一个 Consul 实例部分?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。