服务注册与发现【Eureka】- 集群Eureka构建步骤
Eureka集群原理说明
Eureka集群环境构建
参考 cloud-eureka-server7001 ,新建一个 cloud-eureka-server7002
POM:直接复制 7001 的 POM 到 7002
修改映射配置(模仿两台服务器)
找到C:\Windows\System32\drivers\etc路径下的hosts文件,修改映射配置添加进hosts文件:
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
YML
以前单机版:
现在集群版:
7001:
server: port: 7001 eureka: instance: hostname: eureka7001.com #eureka服务端的实例名字 client: register-with-eureka: false #表识不向注册中心注册自己 fetch-registry: false #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务 service-url: defaultZone: http://eureka7002.com:7002/eureka/ #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
7002:
server: port: 7002 eureka: instance: hostname: eureka7002.com #eureka服务端的实例名字 client: register-with-eureka: false #表识不向注册中心注册自己 fetch-registry: false #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务 service-url: defaultZone: http://eureka7001.com:7001/eureka/ #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
主启动
复制cloud-eureka-server7001的主启动类到7002即可
服务提供者和消费者(支付、订单模块)入驻进Eureka集群
yml
eureka: client: register-with-eureka: true fetchRegistry: true service-url: defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版 # defaultZone: http://localhost:7001/eureka
服务提供者(支付服务)集群配置
参考cloud-provider-payment8001 新建cloud-provider-payment8002
复制8001 的所有东西到 8002(yml的端口独有、pom中的基础 artifactId 独有)
修改8001/8002的Controller,返回的数据中,带上服务端口号
服务提供者(cloud-provider-payment8001 和 cloud-provider-payment8002)的负载均衡
修改服务消费者(cloud-consumer-order8080)访问服务提供者的地址,修改为服务提供者的微服务名称
使用 @LoadBalanced 注解赋予 RestTemplate 负载均衡的能力
actuator微服务信息完善
主机名称:服务名称修改、访问信息有IP提示:
在微服务客户端(两个服务提供者,一个服务消费者)的YML中添加如下配置
8002 和 8080 也一样:
结果:
注意:要实现这些图形化的展现和监控,必须要导入下面的这两个包,不然这些信息完善就没有效果。
整体测试:
启动EurekaServer,7001/7002服务
启动服务提供者provider,8001/8002服务
启动服务消费者 consumer 8080 服务
访问Eureka7001 和 7002
访问 consumer 8080 的接口
结果:以轮询的方式交替访问两个服务提供者