在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,所以需要服务治理,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能。SpringCloud Eureka 是一个基于 REST 的服务,并且提供了基于Java的客户端组件,能够非常方便地将服务注册到 Spring Cloud Eureka 中进行统一管理。服务治理是微服务架构中必不可少的一部分,阿里开源的 Dubbo 框架就是针对服务治理的。服务治理必须要有一个注册中心。
●高可用性
在服务治理麾下的所有微服务节点,不论是被闪电击中还是被挖掘机铲断了电源,即使战至最后一个存活节点,服务治理框架也要保证服务的可用性。
●分布式调用
微服务的节点通常散落在不同的网络环境中,大型互联网公司甚至会使用两地三机房或跨洲际机房做异地容灾。
这就要求服务治理框架具备在复杂网络环境下准确获知服务节点网络地址(IP,端口以及服务名称)的能力。作为服务消费者,就可以借助服务治理框架的精准制导能力,向服务节点发起请求。
●生命周期管理
在Spring的世界更是如此。微服务也把自己平凡而充实的一生,交给了服务治理框架,从服务上线、持续运行直到临终关怀,服务治理始终贯穿整个微服务生命周期。
●健康度检查
微服务的节点都是任劳任怨地执行 996,当然,如果一个节点因为任何原因不再能 996的辛勤工作。服务治理框架要精准识别这些节点,将其从微服务中剔除。
●服务注册
服务者将自己注册到Eureka中,提供消费者后期的获取数据。
●服务发现
消费者从注册中心拉取数据信息。
●心跳检测
服务续约和服务剔除,一套由于服务方提供注册中心配合完成的伪存问题的过程。
●服务下线
服务方发起主动下线。