Spring Cloud使用Eureka集群搭建实现高可用服务注册中心
前面我们搭建的注册中心只适合本地开发使用,在生产环境中必须搭建一个集群来保证高可用。Eureka 的集群搭建方法很简单:每一台 Eureka 只需要在配置中指定另外多个 Eureka 的地址就可以实现一个集群的搭建了。
下面我们以 2 个节点为例来说明搭建方式。假设我们有 master 和 slaveone 两台机器,需要做的就是:
如果是 3 台机器,以此类推:
首先,我们需要增加 2 个属性文件,在不同的环境下启动不同的实例。增加 application-master.properties:
这样就将 master 注册到了 slaveone 中,将 slaveone 注册到了 master 中,无论谁出现问题,应用都能继续使用存活的注册中心。
之前在客户端中我们通过配置 eureka.client.serviceUrl.defaultZone 来指定对应的注册中心,当我们的注册中心有多个节点后,就需要修改 eureka.client.serviceUrl.defaultZone 的配置为多个节点的地址,多个地址用英文逗号隔开即可:
下面我们以 2 个节点为例来说明搭建方式。假设我们有 master 和 slaveone 两台机器,需要做的就是:
- 将 master 注册到 slaveone 上面。
- 将 slaveone 注册到 master 上面。
如果是 3 台机器,以此类推:
- 将 master 注册到 slaveone 和 slavetwo 上面。
- 将 slaveone 注册到 master 和 slavetwo 上面。
- 将 slavetwo 注册到 master 和 slaveone 上面。
搭建步骤
创建一个新的项目 eureka-server-cluster,配置跟 eureka-server 一样。首先,我们需要增加 2 个属性文件,在不同的环境下启动不同的实例。增加 application-master.properties:
server.port=8761
# 指向你的从节点的Eureka
eureka.client.serviceUrl.defaultZone=http://用户名:密码@localhost:8762/eureka/
server.port=8762
# 指向你的主节点的Eureka
eureka.client.serviceUrl.defaultZone=http://用户名:密码 @localhost:8761/eureka/
spring.application.name=eureka-server-cluster
# 由于该应用为注册中心, 所以设置为false, 代表不向注册中心注册自己
eureka.client.register-with-eureka=false
# 由于注册中心的职责就是维护服务实例, 并不需要检索服务, 所以也设置为 false
eureka.client.fetch-registry=false
spring.security.user.name=zhangsan
spring.security.user.password=123456
# 指定不同的环境
spring.profiles.active=master
这样就将 master 注册到了 slaveone 中,将 slaveone 注册到了 master 中,无论谁出现问题,应用都能继续使用存活的注册中心。
之前在客户端中我们通过配置 eureka.client.serviceUrl.defaultZone 来指定对应的注册中心,当我们的注册中心有多个节点后,就需要修改 eureka.client.serviceUrl.defaultZone 的配置为多个节点的地址,多个地址用英文逗号隔开即可:
eureka.client.serviceUrl.defaultZone=http://zhangsan:123456@localhost:8761
/eureka/,http://zhangsan:123456@localhost:8762/eureka/
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算