Eureka集群 Eureka高可用 服务注册Eureka集群 含yml配置文件

为何选择Eureka Server集群

  如果一个Eureka server发生宕机,某些微服务也出现故障的时候。Eureka Client中的缓存就无法更新,可能会影响微服务之间的调用,所以为了高可用性,我们在线上选择集群模式。本文代码以2个节点为例子。

  配置系统的hosts,Windows系统的hosts文件路径是C:\Windows\System32\drivers\etc\hosts;Linux以
及Mac OS等系统路径为/etc/hosts。一行代码就行。
Eureka集群 Eureka高可用 服务注册Eureka集群 含yml配置文件_第1张图片

复制代码环节

# 单个eureka
#server:
#  port: 8090
#
#eureka:
#  instance:
#    hostname: localhost
#  client:
#    registerWithEureka: false
#    fetchRegistry: false
#    serviceUrl:
#      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

#  集群
spring:
  profiles: peer1
  application:
    name: eureka-scy

server:
  port: 8090
    
eureka:
  instance:
    hostname: peer1
  client:
     registerWithEureka: false
     fetchRegistry: false
     serviceUrl:
      defaultZone: http://peer2:8091/eureka/
---

spring:
  profiles: peer2
  application:
    name: eureka-scy

server:
  port: 8091
  
eureka:
  instance:
    hostname: peer2
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://peer1:8090/eureka/

打包环节

  用maven打一下包,pom文件右键Run As–>Maven install

项目启动

  到jar的位置,启动jar包,上部分代码定义了两个不用的Profile,peer1启动会注册peer2,peer2启动会注册到peer1。

Eureka集群 Eureka高可用 服务注册Eureka集群 含yml配置文件_第2张图片

加一个client凑个热闹

server:
  port: 8586
spring:
  application:
    name: api-base

eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://peer1:8090/eureka/,http://peer2:8091/eureka/

  加一个微服务,注册的eureka地址用逗号分隔就行。

成果展示

Eureka集群 Eureka高可用 服务注册Eureka集群 含yml配置文件_第3张图片
Eureka集群 Eureka高可用 服务注册Eureka集群 含yml配置文件_第4张图片
服务在两个eureka上都注册了,ds replicas相邻节点也成功。

你可能感兴趣的:(eureka,高可用,java,eureka)