微服务未在所有Eureka实例上注册

时间:2019-12-26 14:25:28

标签: spring-boot microservices netflix-eureka high-availability

Spring Boot版本:2.1.6.RELEASE

Spring Cloud版本:Greenwich.SR1

目标是在集群中设置两个Eureka Server实例,并将所有微服务都注册到这两个实例中,以实现HA。目前,我正在运行Ubuntu 18.04的本地计算机上对此进行测试。

因此,如官方文档中所述,我已经建立了对Eureka实例的对等感知。在启动两个Eureka服务器实例时,在实例1(端口8080)的仪表板上的可用副本下显示实例2名称,而在实例2(端口8081)的仪表板上则显示实例1名称。到目前为止一切顺利。

我已经将它们作为战争部署在外部tomcat服务器上,而不是作为jar运行。战争名称是“ eureka-naming-server”。因此,我的访问URL变为:http://localhost:8080/eureka-naming-server/eurekahttp://localhost:8081/eureka-naming-server/eureka

我已经使用Apache 2和mod_jk设置了负载平衡器。因此,我可以使用Apache URL作为http://localhost:8080/eureka-naming-server/eureka来访问它们,而不必使用它们各自的URL(即http://localhost:8081/eureka-naming-server/eurekahttp://localhost:80/eureka-naming-server/eureka)来访问它们,并且可以看到负载平衡正常发生。

现在的问题是,一旦我在微服务中将Eureka URL设置为http://localhost:80/eureka-naming-server/eureka,它就会仅在一个实例上注册,具体取决于负载均衡器已重定向请求的实例。但是,即使设置了对等感知,微服务也不会在另一个eureka实例上注册。

尤里卡1号道具:

spring:
  application:
    name: eureka-naming-server
  jmx:
    default-domain: eureka-naming-server
eureka:
  client:
    service-url:
      defaultZone: http://eureka-server-2:8081/eureka-naming-server/eureka

    #register-with-eureka: false
    #fetch-registry: false
  instance:
    hostname: eureka-server-1

尤里卡2号道具:

spring:
  application:
    name: eureka-naming-server
  jmx:
    default-domain: eureka-naming-server
eureka:
  client:
    service-url:
      defaultZone: http://eureka-server-1:8080/eureka-naming-server/eureka

    #register-with-eureka: false
    #fetch-registry: false
  instance:
    hostname: eureka-server-2

微服务道具:

eureka:
  instance:
    metadata-map:
      configPath: /config
  client:
    service-url:
      defaultZone: http://localhost/eureka-naming-server/eureka

在机器的/ etc / hosts文件中,我将其设置为:

127.0.0.1 eureka-server-1

127.0.0.1 eureka-server-2

正在注册它的eureka实例,我可以在日志中看到以下内容:

WARN 13748 --- [nio-8009-exec-3] Registered instance CONFIG-SERVER/192.168.1.16:config-server:8888 with status UP (replication=false)

另一个未注册的Eureka实例,由于负载均衡器而收到心跳信号时,会在日志中显示:

WARN 13748 --- [nio-8009-exec-3] c.n.e.registry.AbstractInstanceRegistry  : DS: Registry: lease doesn't exist, registering resource: CONFIG-SERVER - 192.168.1.16:config-server:8888
2019-12-26 19:00:34.995  WARN 13748 --- [nio-8009-exec-3] c.n.eureka.resources.InstanceResource    : Not Found (Renew): CONFIG-SERVER - 192.168.1.16:config-server:8888

Eureka-1仪表板

enter image description here

Eureka-2仪表板

enter image description here

我已经尝试过提及herehere的建议。但是似乎没有任何效果。

那我在这里会想念什么?

0 个答案:

没有答案