0

我在对等模式下运行发现,其中我有 2 个发现服务器,这些服务器都在交换信息并代表当前发现的服务集。

在服务用于连接到 eureka 的 serviceUrls 中有一个 csv 列表,其中存在 discoveryserver1,discoveryserver2。

所以服务总是去discoveryserver1,除非出现故障,然后他们去discoveryserver2。

我想做的是让发现客户端在发现服务器 1 和发现服务器 2 之间循环,以便服务上的负载均衡。而是一个发现服务器负载很重,而另一个不使用(很多)

除非我重写发现客户端,否则我看不到这样做的方法。

想法?

4

1 回答 1

0

最简单的方法是使用边缘服务器作为 zuul(幸运地在 spring cloud stack 中可用:))。因此,您的所有请求都通过 zuul 代理,该代理使用功能区作为中间层服务的负载均衡器。当然,拥有冗余的zuul服务器很重要,因此您必须在前面设置一些LB作为BigIp或其他方式。

或者

如果您在没有 zuul 的情况下使用 eureka,并且唯一的客户端是您拥有的代码,那么您可以:

  1. 用 LoadBalancerClient 注释它或
  2. 使用 RestTemplate 或
  3. 使用 FeignClient 或
  4. 我不知道的其他选项;)

+在类路径上添加功能区,你很高兴。

于 2015-08-06T11:56:09.900 回答