Eureka 本地集群搭建
你好,我是悟空。
组成 Eureka 注册中心集群
修改本地 hosts 配置
host 文件添加两台 Eureka server 的地址映射,都为本地 localhost 地址
127.0.0.1 eureka-server1
127.0.0.1 eureka-server2
修改 Eureka Server 配置
两个服务互相向对方注册,第一个 Eureka 开放 8761 端口,注册到第二个 Eureka 的 8762 端口。
第一个 Eureka Server 的配置并启动
server:
port: 8761
eureka:
instance:
hostname: eureka-server1
client:
serviceUrl:
defaultZone: http://eureka-server1:8762/eureka/
修改第二个 Eureka Server 的配置,并启动
server:
port: 8762
eureka:
instance:
hostname: eureka-server2
client:
serviceUrl:
defaultZone: http://eureka-server2:8761/eureka/
访问 http://localhost:8761/
访问 http://localhost:8762/
两台 Eureka Server 组成了一个集群环境
组成服务集群
将服务 A 配置成注册到 Eureka 集群。在 defaultZone 配置中添加第二个 eureka 的服务地址。
server:
port: 8005
spring:
application:
name: ServiceA
eureka:
instance:
hostname: localhost
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka,http://localhost:8762/eureka
然后启动服务 A。
然后将服务 A 的 port 改为 8006 后,再次启动一个服务 A,相当于部署了两个服务 A,后续可以作为测试负载均衡的功能。
发现一个 Eureka 的问题,注册列表总是刷新不出最新的注册信息,重启 Eureka 服务后就刷出来了。
接着我们把服务 A 的passjava 方法,打下日志,后面观察两个服务 A 分别被服务 B 调用了几次。
修改服务调用者的配置
将服务 B 配置成注册到 Eureka 集群。在 defaultZone 配置中添加第二个 eureka 的服务地址。
两个 Eureka 服务中都有服务 B 的注册信息。
测试服务 B 调用服务 A
多次刷新浏览器,访问服务 B 的 API
http://localhost:9091/test/悟空
第一个服务 A 被服务 B 调用了 6 次:
第二个服务A 被服务 B 调用了 7 次: