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
来构建微服务非常重要。
版权声明:本文标题:Spring Cloud微服务案例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714425863a679767.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论