上一章我们聊过如何将多个服务注册到EurekaServer中,但是我们发现,如果一个项目中有非常多个服务,那么我们EurekaServer的压力就会非常大,那么我们就需要对EurekaServer做一些处理,很明显就是要对EurekaServer做集群,但是又有一个问题出现,我们对注册中心做集群,那么我们的每个服务如何将自己的ip和端口告诉多个注册中心,多个注册中心又如何关联一起的。
1.EurekaServer集群方案:
通过这张图我们创建了三个EurekaServer,那么我们就在本地创建三个EurekaServer,这三个注册中心相互联系,他们既充当Eureka服务端,又充当Eureka客户端。其他的服务指向所有的注册中心就可以了。
1.1 修改本地host文件,将localhost映射成peer1,peer2,peer3
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
1.2 修改配置文件:
我们这里做的测试是单文件配置多环境的方式,就是在一个配置文件(yml)中切换多个环境进行测试。
通过官方文档的了解,我们只需要在单个EurekaServer配置文件的基础上复制一份,通过- - -的方式配置多环境,再使用spring.profiles.active: peer1的方式选择启动配置。
spring:
profiles:
active: peer1
---
server:
port: 1000 #端口
eureka:
instance:
hostname: peer1 #主机
prefer-ip-address: true #通过ip注册
client: #客户端配置
registerWithEureka: false #EurekaServer自己不要注册到EurekaServer自己 ,只有EurekaClient才注册
fetchRegistry: false #EurekaServer不要拉取服务的通信地址列表 ,只有EurekaClient才拉取地址列表
serviceUrl: #注册中心的注册地址
defaultZone: http://peer2:1001/eureka/ #http://${eureka.instance.hostname}:${server.port}/eureka/
server:
enable-self-preservation: false #关闭自我保护警告
spring:
profiles: peer1
---
server:
port: 10001 #端口
eureka:
instance:
hostname: peer2 #主机
prefer-ip-address: true #通过ip注册
client: #客户端配置
registerWithEureka: false #EurekaServer自己不要注册到EurekaServer自己 ,只有EurekaClient才注册
fetchRegistry: false #EurekaServer不要拉取服务的通信地址列表 ,只有EurekaClient才拉取地址列表
serviceUrl: #注册中心的注册地址
defaultZone: http://peer1:1000/eureka/ #http://${eureka.instance.hostname}:${server.port}/eureka/
server:
enable-self-preservation: false #关闭自我保护警告
spring:
profiles: peer2
1.3 启动EurekeServer服务:
这里我们需要注意,idea默认启动服务的方式是单例的,我们需要更改一下idea配置
我们分别启动两次,再通过浏览器分别访问:peer1:1000和peer2:1001看一下有什么不同:
看到这里EurekaServer的集群就做好了。非常的简单,但是又有一个新的问题,我们的服务,如何在多个注册中心注册自己的信息?
2.微服务注册到多个注册中心
这个就太简单了,我们开篇就有说到,我们创建好集群之后每个服务,只需要把自己的ip和端口注册到每一个注册中心就可以,我们只需要更改一下客户端的配置文件。
eureka:
client:
serviceUrl:
defaultZone: http://peer1:1000/eureka/,http://peer2:1001/eureka/
3.EurekaServer集群总结:
首先我们将之前的EurekaServer的配置文件更改一下,通过单个文件多环境配置,多个注册中心相互指向。每一个客户端服务,只需要将自己的信息注册到每一个注册中心就可以完成注册中心集群注册
下一章我们聊一下,服务之间如何进行通信,那么我们就要知道SpringCloud的新组件Ribbon。感谢大家支持,如有任何问题,欢迎大家提出宝贵意见
扫描二维码关注公众号,回复: 11519323 查看本文章