什么是服务治理?此处可以简单理解如下:
服务治理就是提供了微服务架构中各微服务实例的快速上线或下线且保持各服务能正常通信的能力的方案总称。
服务治理的优点:
-
更高的可用性
服务治理可以支持动态的服务实例集群环境,任何服务实例可以随时上线或下线。并且当一个服务实例不可用时,治理服务器可以将请求转给其他服务提供者,当一个新的服务实例上线时,也能够快速地分担服务调用请求。
-
负载均衡
服务治理可以提供动态的负载均衡功能,可以将所有请求动态地分布到其所管理的所有服务实例中进行处理。
-
提升应用的弹性
服务治理的客户端会定时从服务治理服务器中复制一份服务实例信息缓存到本地中,这样即使当服务治理服务器不可用时,服务消费者也可以使用本地的缓存去访问相应的服务,而不至于中断服务。通过这种机制,极大地提高了应用的弹性。
-
高可用性集群
可以构建服务治理集群,通过互相注册机制,将每个治理服务器所管辖的服务信息列表进行交换,使服务治理服务拥有更高的可用性。
Eureak
Eureak
是服务治理的一种具体解决方案,说明如下:
Eureak
是Netflix
开源微服务框架中一系列项目中的一个。Spring Cloud
对其进行了二次封装,形成了Spring Cloud Netflix
子项目,但未对Netflix
微服务实现原理进行更改,只是进行了Spring Boot
化,使开发者更容易使用和整合。
在Eureka
中,对于服务治理有如下3个概念:
- 服务治理服务器(
Eureka
服务器):服务注册中心,负责服务列表的注册、维护和查询等功能,也就是Eureka
服务器。 - 服务注册代理(服务提供者):如果一个微服务是一个服务提供者,那么可以通过服务注册代理将服务配置信息注册到治理服务器上。服务注册代理可以理解为一个
Eureka
客户端,负责将微服务所提供的服务向Eureka
服务器执行注册、续约和注销等操作,以使服务消费者可以发现并进行消费。在服务注册时需要向服务治理服务器提供服务名称、宿主服务器IP地址、服务端口号、域名等主要数据。 - 服务发现客户端(服务消费者):也是一个
Eureka
客户端。它在启动时会默认从所服务治理服务器中获取所有的服务注册表信息,通过所获取到的服务注册列表信息来消费相应的服务。