Spring Cloud Eureka

Spring Cloud Eureka是对Netflix公司的Eureka的二次封装,实现了服务治理的功能,Spring Cloud Eureka提供Eureka Server服务端与Eureka Client客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。
【Way to Spring Cloud 3】Spring Cloud Eureka

构建Eureka Server

【Way to Spring Cloud 3】Spring Cloud Eureka
【Way to Spring Cloud 3】Spring Cloud Eureka
【Way to Spring Cloud 3】Spring Cloud Eureka
【Way to Spring Cloud 3】Spring Cloud Eureka

修改微服务注册Spring Cloud Client

修改pom.xml
【Way to Spring Cloud 3】Spring Cloud Eureka
修改application.yml
【Way to Spring Cloud 3】Spring Cloud Eureka
修改启动类
【Way to Spring Cloud 3】Spring Cloud Eureka
修改注册服务的展示
【Way to Spring Cloud 3】Spring Cloud Eureka
修改显示ip地址而不是主机名
【Way to Spring Cloud 3】Spring Cloud Eureka
修改Eureka的自我保护机制
当Eureka Server 在一定时间内(默认90秒)没有接收到某个微服务的心跳,Eureka Server会从服务列表将此服务实例注销。但是如果出现网络异常情况(微服务本身是正常的),微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是正常的,此时本不应该注销这个微服务。
Eureka Server有一种 “自我保护模式” 来解决这个问题——当Eureka Server在短时间内丢失过多客户端时(可能发生了网络故障),此时Eureka Server会进入自保护模式,一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server会自动退出自我保护模式。
所以, 自我保护模式是一种应对网络异常的安全保护措施。它的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的微服务都会保留),也不盲目注销任何健康的微服务。使用自我保护模式,可以让Eureka集群更加的健壮、稳定。
【Way to Spring Cloud 3】Spring Cloud Eureka

搭建集群版 Eureka Server 服务注册中心

为了避免 Eureka Server的失效,Eureka Server 高可用环境需要部署两个及以上Eureka Server,它们互相向对方注册。如果在本机启动两个Eureka需要 注意两个Eureka Server的端口要设置不一样,如下图:
【Way to Spring Cloud 3】Spring Cloud Eureka
1、在实际使用时Eureka Server至少部署两台服务器,实现高可用。
2、两台Eureka Server互相注册。
3、微服务需要连接两台Eureka Server注册,当其中一台Eureka死掉也不会影响服务的注册与发现。
4、微服务会定时向Eureka Server发送心跳,报告自己的状态。
5、微服务从注册中心获取服务地址以RESTful方式发起远程调用。
【Way to Spring Cloud 3】Spring Cloud Eureka
创建两个Eureka Server
【Way to Spring Cloud 3】Spring Cloud Eureka
配置hosts文件
【Way to Spring Cloud 3】Spring Cloud Eureka
修改两台Eureka Server的yml文件
【Way to Spring Cloud 3】Spring Cloud Eureka
【Way to Spring Cloud 3】Spring Cloud Eureka
修改服务提供者的yml
【Way to Spring Cloud 3】Spring Cloud Eureka
测试是否成功
【Way to Spring Cloud 3】Spring Cloud Eureka
【Way to Spring Cloud 3】Spring Cloud Eureka

相关文章: