gpt4 book ai didi

java - 如何将Eureka客户端注册到带有负载均衡器的Eureka服务器集群?

转载 作者:行者123 更新时间:2023-11-30 02:34:26 25 4
gpt4 key购买 nike

当我部署微服务 eureka 客户端并设置 eureka 服务器的 url 时,如下所示:

eureka.client.serviceUrl.defaultZone=http://10.118.28.94:7701/eureka/,http://10.154.32.88:7701/eureka/

我发现客户端总是注册到第一个 Eureka 服务器(10.118.28.94:7701),我想知道如何进行负载平衡以防止所有客户端注册到同一个 Eureka 服务器?我应该手动调整服务器列表的顺序吗?

最佳答案

这可能会让您感到困惑,请一次一步地进行

follow this link to understand micro services registration with eureka server

从这里开始

要进行 eureka 集群,您需要运行 eureka 服务器的两个实例

配置eureka服务器application.proerties如下

#EMBEDDED SERVER CONFIGURATION (ServerProperties)
server.port=8081

#Configuration for service registration with Eureka Server
eureka.instance.hostname=peer1
eureka.server.hostname=peer2
eureka.server.port=8082
eureka.client.serviceUrl.defaultZone=http://${eureka.server.hostname}:${eureka.server.port}/eureka/
eureka.server.renewalPercentThreshold=0.49

#self registration Configuration
eureka.client.registerWithEureka: false
eureka.client.fetchRegistry: false

将 eureka 服务器打包为 jar 后在 IDE 之外运行应用程序

注意 在运行应用程序之前更新您的主机信息 在Windows中 C:\Windows\System32\drivers\etc 打开主机文件粘贴这些

    127.0.0.1  peer1 
127.0.0.1 peer2

现在您已准备好运行 Eureka

instance 1 : java -jar eurekaserveryourartifact.jar

要运行第二个实例,您需要在运行应用程序时将它们作为 VM 参数传递来覆盖 application.proerties 中的某些属性,如下所示

instance 2 : java -jar -Dserver.port=8082 -Deureka.instance.hostname=peer2 -Deureka.server.hostname=peer1 eureka.server.port=8081 eurekaserveryourartifact.jar

---------------------- 到这里Eureka集群完成------------

访问 eureka1 :peer1:8081 或 localhost:8081

访问 eureka2 :peer2:8082 或 localhost:8082

确保第一个 Eureka 将副本显示为peer2,第二个服务器将副本显示为peer1

<小时/>

现在向 eureka 注册您的服务

第一个 Eureka 服务器注册您的服务( Eureka 客户端),这些服务也会自动向第二个 Eureka 服务器注册。客户端应在 application.proerties 中进行如下配置。

    #reading values from pom.xml
spring.application.name=@artifactId@
#service registration with Eureka Server
eureka.server.port=8081
eureka.server.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://${eureka.server.hostname}:${eureka.server.port}/eureka/ eureka.instance.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}}

要测试负载平衡,最好通过覆盖服务器端口来运行服务的多个实例,如下所示

服务ins1:java -jar serviceartifact.jar

服务ins2:java -jar -Dserver.port=8082 serviceartifact.jar

现在您可以看到注册到 eureka1eureka2 的 2 个服务实例

在访问这些服务时,如果一个服务实例宕机了另一个实例(注意:两个服务运行在不同的端口上)url 将由 eureka 服务器自动提供给服务的使用者。

我们还可以使用功能区进行客户端负载平衡

关于java - 如何将Eureka客户端注册到带有负载均衡器的Eureka服务器集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43472784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com