我正在实施服务发现并评估两个选项:Eureka 和 Consul。
帮我做决定!我倾向于 Eureka,但我需要解决一个主要的技术问题。我的基础架构基于 openshift。我可以让多个容器在负载均衡器后面运行 Eureka 服务器。据我所知,每台服务器都需要相互通信。此外,Eureka 主要与 AWS 一起使用...
(新手)问题:
1)如何配置每个 Eureka Server 以相互通信?我有一个(负载平衡的)URL。我担心每个服务器可能会变得不同步。
2)我错过了什么吗?
我正在实施服务发现并评估两个选项:Eureka 和 Consul。
帮我做决定!我倾向于 Eureka,但我需要解决一个主要的技术问题。我的基础架构基于 openshift。我可以让多个容器在负载均衡器后面运行 Eureka 服务器。据我所知,每台服务器都需要相互通信。此外,Eureka 主要与 AWS 一起使用...
(新手)问题:
1)如何配置每个 Eureka Server 以相互通信?我有一个(负载平衡的)URL。我担心每个服务器可能会变得不同步。
2)我错过了什么吗?
没错,每个 Eureka Server 都必须相互通信。您还可以根据自己的方法玩区域。
要使其工作(无区域),您必须配置该属性:
eureka.client.service-url.defaultZone: http://1st-eureka-server-ip-or-hostname:port/eureka/,http://2nd-eureka-server-hostname:porta/eureka/
上面的配置接受所有 Eureka 服务器的一组以逗号分隔的 IP/主机名。
如果您想进行多区域配置,我建议您阅读这篇博文。
要将每个 Eureka 服务器配置为相互通信,请尝试以这种方式在文件夹中的资源中创建一个不同的不同区域。
应用程序-zone1.yml
server.port: 8001
eureka:
instance:
hostname: localhost
metadataMap.zone: zone1
应用-zone2.yml
server.port: 8002
eureka:
instance:
hostname: 127.0.0.1
metadataMap.zone: zone2
应用程序.yml
client:
register-with-eureka: false
fetch-registry: false
region: region-1
service-url:
zone1: http://localhost:8001/eureka/
zone2: http://127.0.0.1:800/eureka/
availability-zones:
region-1: zone1,zone2
spring.profiles.active: zone1