admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:windows通用对话框)

本文实战案例采用maven 3.5、Java 1.8、Spring Boot 2.3调试通过。

三、服务治理:Spring Cloud Alibaba Nacos

Spring Cloud Alibaba通过为Nacos增加了Spring Boot风格的自动化配置,我们只需通过简单引入依赖

和注解配置就能让Spring Boot构建的微服务应用轻松地与Nacos服务治理体系进行整合。

服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册

与发现。

服务注册:在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的

服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织

服务清单。比如,我们有两个提供服务A的进程分别运行于192.168.0.100:8000和192.168.0.101:8000

位置上,另外还有两个提供服务B的进程分别运行于192.168.0.100:9000 、192.168.0.101:9000位置

上。当这些进程均启动,并向注册中心注册自己的服务之后,注册中心就会维护一个服务清单。另外,

服务注册中心还需要以心跳的方式去监测清单中的服务是否可用,若不可用需要从服务清单中剔除,达

到排除故障服务的效果。

服务发现:由于在服务治理框架下运作,服务间的调用不再通过指定具体的实例地址来实现,而是通过

向服务名发起请求调用实现。所以,服务调用方在调用服务提供方接口的时候,并不知道具体的服务实

例位置。因此,调用方需要向服务注册中心咨询服务,并获取所有服务的实例清单,以实现对具体服务

实例的访问。比如,现有服务C希望调用服务A, 服务C就需要向注册中心发起咨询服务请求,服务注册中

心就会将服务A的位置清单返回给服务C, 如按上例服务A的情况,C便获得了服务A的两个可用位置

192.168.0.100:8000和192.168.0.101:8000。当服务C要发起调用的时候,便从该清单中以某种轮询策

略取出一个位置来进行服务调用,这就是后续我们将会介绍的客户端负载均衡。

Nacos支持几乎所有主流类型的“服务”的发现、配置和管理:

1)gRPC&Dubbo RPC Service

2)Spring Cloud RESTful Service

3)Kubernetes Service

Nacos支持基于DNS和基于RPC的服务发现。

Nacos提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。

动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

动态DNS服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数

据中心内网的简单DNS解析服务。

Nacos能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命

周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的SLA以及最

首要的metrics统计数据。

四、客户端负载均衡:Spring Cloud Ribbon

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过

Spring Cloud的封装,可以让我们轻松地将面向服务的REST模板请求自动转换成客户端负载均衡的服务

调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样

需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调

用,API网关的请求转发等内容实际上都是通过Ribbon来实现的,包括后续我们将要介绍的Feign, 它也

是基于Ribbon实现的工具。所以,对Spring Cloud Ribbon的理解和使用,对于我们使用Spring Cloud

来构建微服务非常重要。


本文标签: 服务 注册 中心 配置 调用