Eureka 作为注册中心,必须保障高可用,否则会直接影响有关的整个服务体系
在SpringCloud教程文章的 SpringCloud详细教程 | 第一篇:服务的注册与发现Eureka(Greenwich版本)实现Eureka的服务注册与发现,Eureka 作为注册中心,必须保障高可用,否则会直接影响有关的整个服务体系。介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这在生产环境上是不太合适的,需要搭建集群实现互相注册,防止其中一个服务挂掉影响整个服务体系
以下分别进行开发环境和生产环境的多服务中心集群配置
我们第一篇文章SpringCloud详细教程 | 第一篇:服务的注册与发现Eureka(Greenwich版本)搭建好的Eureka 服务中心基础上进行改造
在之前的服务上新建两个application.properties配置文件
application-peer1.properties
#服务注册中心端口号server.port=8761#服务注册中心实例的主机名eureka.instance.hostname=peer1#是否向服务注册中心注册自己eureka.client.register-with-eureka=false#是否检索服务eureka.client.fetch-registry=false#服务注册中心的配置内容,指定服务注册中心的位置eureka.client.service-url.defaultZone=http://peer2:8762/eureka/
#新增节点执行配置文件spring.profiles.active=peer1
application-peer2.properties
#服务注册中心端口号server.port=8762#服务注册中心实例的主机名eureka.instance.hostname=peer2#是否向服务注册中心注册自己eureka.client.register-with-eureka=false#是否检索服务eureka.client.fetch-registry=false#服务注册中心的配置内容,指定服务注册中心的位置eureka.client.service-url.defaultZone=http://peer1:8761/eureka/
#新增节点指向配置文件spring.profiles.active=peer2
这时eureka-server就已经改造完毕
这个时候大家可能主机名之前为localhost,现在各为peer1 ,peer2 表示两个机器模仿集群
下面需要改变/etc/hosts,从而可以发现我们自定义的peer1,peer2,linux系统通过vim /etc/hosts ,加上:
127.0.0.1 peer1127.0.0.1 peer2
ps: hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件
windows电脑,在c:/windows/systems/drivers/etc/hosts 修改
改好之后 下面通过IDEA多个SpringBoot实例启动服务
在IDEA上点击Application右边的下三角 ,弹出选项后,点击Edit Configuration
打开配置后
1:添加
2:选择Spring Boot
3: 名称自定义
4:输入启动参数
5:选择项目module
6:选择启动类
然后Apply即可
当前启动参数为:--spring.profiles.active=peer1
指定启动是所用的配置文件 application-peer1.properties 然后就可以run
同理配置 peer2
各自启动完毕之后 打开浏览器输入 http://localhost:8761/, http://localhost:8762/
localhost:8761你会发现有个peer2节点
localhost:8762你会发现有个peer1节点
在配置文件修改注册中心地址http://peer1:8761/eureka/,http://peer2:8762/eureka/ 表示向两个注册中心进行注册
# 端口号server.port=8763# 需要指明spring.application.name 这个很重要# 这在以后的服务与服务之间相互调用一般都是根据这个namespring.application.name=eureka-client#服务注册中心实例的主机名eureka.instance.hostname=localhost#服务注册中心端口号eureka.port=8761#在此指定服务注册中心地址#eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8770/eureka/,http://${eureka.instance.hostname}:8771/eureka/eureka.client.service-url.defaultZone=http://peer1:8761/eureka/,http://peer2:8762/eureka/
#为true设置的是web开启sleuth功能spring.sleuth.web.client.enabled=true#当设置为1.0时就是链路数据100%收集到zipkin-serverspring.sleuth.sampler.probability=1.0# 指定了 Zipkin 服务器的地址spring.zipkin.base-url=http://localhost:9411
启动 eureka-client 成功后再次查看服务注册情况
发现eureka-client服务在两个服务中心注册成功
将jar 包放到相应的服务器上(这里演示在本机),分别运行jar包:
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
运行后如下图:
打开浏览器依次访问 http://localhost:8761/, http://localhost:8762/
再次启动eureka-client服务 看下是否注册成功
结果和上面一样的
Eureka Server集群配置完成, 然后你的机器较多,按照上面的配置规则即可,然后配置相应Eureka客户端注册中心地址
源码下载: https://github.com/LiHaodong888/SpringCloudLearn