Spring Cloud Eureka 集群高可用
在微服务架构中,注册中心是一个必不可少的组件前面我们搭建的注册中心只适合本地开发使用,在生产环境必须搭建一个集群来保证高可用Eureka的集群搭建很简单,每一台Eureka都需要在配置中指定另外N个Eureka的地址就可以下面我们以2个节点来说明我们有master和slaveone 2台机器,需要做的就是:- master注册到slaveone上面- slaveone注册到master上面即
在微服务架构中,注册中心是一个必不可少的组件
前面我们搭建的注册中心只适合本地开发使用,在生产环境必须搭建一个集群来保证高可用
Eureka的集群搭建很简单,每一台Eureka都需要在配置中指定另外N个Eureka的地址就可以
下面我们以2个节点来说明
我们有master和slaveone 2台机器,需要做的就是:
- master注册到slaveone上面
- slaveone注册到master上面即可
如果是3台机器,那么以此类推:
- master注册到slaveone,slavetwo上面
- slaveone注册到master,slavetwo上面
- slavetwo注册到master,slaveone上面
首先我们需要增加2个属性文件,通过不同的环境来启动不同的实例
增加application-master.properties
server.port=8761
#指向你的从节点的Eureka
eureka.client.serviceUrl.defaultZone=http://用户名:密码@slaveone:8762/eureka/
增加application-slaveone.properties
server.port=8762
#指向你的主节点的Eureka
eureka.client.serviceUrl.defaultZone=http://用户名:密码@master:8761/eureka/
master 和 slaveone是hostname, 可以在hosts文件中添加,直接写IP也行
application.properties中添加下面的内容
spring.application.name=fangjia-eureka
eureka.instance.hostname=localhost
# 由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
eureka.client.register-with-eureka=false
# 由于注册中心的职责就是维护服务实例,他并不需要去检索服务,所以也设置为false
eureka.client.fetch-registry=false
# 关闭自我保护
eureka.server.enableSelfPreservation=false
security.basic.enabled=true
security.user.name=用户名
security.user.password=密码
# 指定不同的环境
spring.profiles.active=master
在A机器上启动默认用master启动即可,然后在B机器上加上–spring.profiles.active=slaveone启动即可
这样master注册到了slaveone中,slaveone注册到了master中,2边的配置信息是同步的,无论谁挂掉了,应用都能继续使用存活的这个注册中心。
具体代码可以参考我的github:
https://github.com/yinjihuan/spring-cloud
欢迎加入我的知识星球,一起交流技术,免费学习猿天地的课程(http://cxytiandi.com/course)
PS:目前星球中正在星主的带领下组队学习Sentinel,等你哦!
更多推荐
所有评论(0)