为了避免Eureka Server 的失效,Eureka Server 高可用环境需要部署两个及以上Eureka Server,它们互相向对方注册。如果在本机启动两个Eureka 需要注意两个Eureka Server的端口要设置不一样,如下图;
- 在实际使用时Eureka Server 至少部署两台服务器,实现高可用。
- 两台Eureka Server 互相注册。
- 微服务需要连接两台Eureka Server 注册,当其中一个Eureka死掉也不会影响服务的注册与发现。
- 微服务定时会向Eureka Server 发送心跳,报告自己状态。
- 微服务从注册中心获取服务地址以RESTful方式发起远程调用。
4.9 创建两个 Eureka Server 模块
- 创建studentservice-cloud-05-eureka-6002,与studentservice-coud-05-eureka-6001创建类似
5.0 配置pom.xml文件
- 将6001 中的pom.xml依赖复制到6002模块中去。
<!-- netflix-eureka-server 服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
5.1 将6001中的主启动类复制到6002模块中,并将类名重命名
5.2 ip与域名绑定
mac系统: /private/etc/hosts
- IP与域名绑定进hosts文件
Eureka Server组成高可用,两个Eureka Server互相向对方注册,这里需要通过域名访问,这里我们设置两个Eureka Server的域名分别为 eureka6001.com , eureka6002.com
5.3 配置2台Eureka Server服务端的yml文件
- 6001 服务端模块的application.yml
- 6002 服务端模块的 application.yml ,注意修改端口号 6002
5.4 将服务提供者 注册到2台Eureka Server 集群中
- 修改studentservice-cloud-03-provider-product-8001中的 application.yml文件
5.5 测试
- 先启动 2个 Eureka Server 集群(6001,6002)
- 访问:
http://eureka6001.com:6001/
http://eureka6002.com:6002/
3.再启动 服务提供者 studentservice-cloud-03-provider-product-8001
当前架构效果; 服务提供者8001已注册进Eureka集群中。