为了使 Eureka Server 实现高可用,咱们须要为它配置集群。这样当有一台 Eureka Server 有故障时,集群中的其余 Server 能够进行代替。Eureka 集群之中的 Node 经过 P2P 通讯的方式共享注册表,以使得每一个 Eureka Server 的注册表保持一致。本教程将在本地开启两台 Eureka Server 以测试集群的搭建。git
Gitee码云spring
打开远程 git 仓库中的 eureka-server.yml
文件,添加以下配置:ide
--- spring: profiles: peer1 server: port: 8761 eureka: instance: hostname: peer1 client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: http://peer2:8762/eureka --- spring: profiles: peer2 server: port: 8762 eureka: instance: hostname: peer2 client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: http://peer1:8761/eureka
三划线用于区分两个不一样的 profile,使用 spring-boot 插件启动项目时可经过命令行参数指定 profile。这两个 profiles 分别指定了 profile 的名字,服务的端口号。ureka.instance.hostname
为主机名,必需要和 eureka.client.serviceUrl.defaultZone
中的 Peer 主机名保持一致。例如,在 peer1
的 profile 中,把 peer2
做为了集群中另外一个镜像节点,那么这个 http://peer2:8762/eureka
URL 中的 peer2
就要和 peer2
profile 中的 eureka.instance.hostname
保持一致。serviceUrl
是 eureka server 的注册地址,defaultZone
想对于 AWS 的 availability zone,在本地测试能够用 defaultZone
或者其余名称,以把 Eureka Server 部署在不一样集群。register-with-eureka
和 fetch-registry
以前设置为了 false, 由于只有一台 Eureka Server,并不须要本身注册本身,而如今有了集群,可在集群的其余节点中注册本服务。spring-boot
修改 hosts 文件,以使 peer1 和 peer2 映射到 localhost,由于 eureka server 的主机名必须不一样才可互相注册,因此在本地须要模拟两个不一样的主机名:测试
127.0.0.1 peer1 127.0.0.1 peer2
打开远程 git 仓库中的 product-service.yml
文件,添加以下配置:fetch
server: port: 8081 spring: cloud: config: allow-override: true override-system-properties: false eureka: client: serviceUrl: defaultZone: http://peer1:8761/eureka, http://peer2:8762/eureka
这里经过 eureka.client.serviceUrl.defaultZone
把 eureka 集群中的全部 url 都填写了进来,也能够只写一台,由于各个 eureka server 能够同步注册表。url
首先启动 configserver,而后分别运行以下两条命令启动 eureka server 集群:插件
mvn spring-boot:run -Dspring-boot.run.profiles=peer1 mvn spring-boot:run -Dspring-boot.run.profiles=peer2
最后启动 productService
,访问任一 Eureka Server,如:命令行
http://peer1:8761
咱们能够看到 Eureka Server 集群和 Product-Service 均在注册表里。code
Application | AMIs | Availability Zones | Status |
---|---|---|---|
EUREKA-SERVER | n/a (2) | (2) | UP (2) - xuqians-imac:eureka-server:8761 , xuqians-imac:eureka-server:8762 |
PRODUCT-SERVICE | n/a (1) | (1) | UP (1) - xuqians-imac:product-service:8081 |
欢迎访问个人博客:张旭乾的博客