您的位置:首页 > 娱乐 > 明星 > 初见SpringCloud ing

初见SpringCloud ing

2024/12/23 16:25:32 来源:https://blog.csdn.net/DoYouThinkAMe/article/details/139890680  浏览:    关键词:初见SpringCloud ing

Consul 服务注册与发现

服务注册与发现
服务注册:微服务在启动时,会将自己的信息(如 IP 地址、端口、服务名称等)注册到 Consul。
服务发现:其他微服务可以通过 Consul 查询到已注册的服务,并通过这些信息进行通信。

分布式配置管理
Consul 可以作为配置中心,管理分布式系统的配置。Spring Cloud Consul 可以将配置信息存储在 Consul 中,并在应用启动时或者运行时动态获取和更新这些配置信息。

健康检查
Consul 支持多种健康检查方式(如 HTTP、TCP 等),并可以通过 Spring Cloud Consul 集成到 Spring Boot 应用中,用于监控微服务的健康状态。

服务治理
Consul 结合 Spring Cloud 的功能,可以实现服务的负载均衡、熔断、限流等服务治理功能,提高系统的稳定性和可靠性。

LoadBalancer负载均衡服务调用

负载均衡
它可以根据不同的负载均衡策略(如轮询、随机、权重等),在多个服务实例之间分配请求,以实现均衡的负载分布。

服务发现集成
Spring Cloud LoadBalancer 与 Spring Cloud 服务发现组件(如 Eureka、Consul、Zookeeper 等)集成,能够自动获取注册在服务发现组件中的服务实例列表。

客户端负载均衡
它在客户端进行负载均衡决策,即由服务调用方选择目标服务实例,从而减少了服务器的负载均衡压力。

OpenFeign服务接口调用

简化服务调用
OpenFeign 通过注解的方式,使得服务调用代码变得更加简洁和易读,避免了大量的模板代码。

集成Ribbon和LoadBalancer
OpenFeign 可以与 Spring Cloud LoadBalancer 或者 Ribbon 集成,支持负载均衡和故障切换,提高了服务调用的可靠性和可用性。

支持可插拔的编码器和解码器
开发者可以自定义请求和响应的编码器和解码器,以满足不同的需求。

支持请求拦截器
OpenFeign 支持在请求发送前后进行拦截,便于实现如日志记录、权限验证等功能。

集成 Hystrix
OpenFeign 可以与 Hystrix 集成,支持熔断和降级处理,提高服务的容错能力。

CircuitBreaker短路器

一种用于提高分布式系统和微服务架构中可靠性和弹性的设计模式。它可以帮助系统在部分组件出现故障时,避免故障蔓延并提供合理的降级处理,从而保证系统的整体稳定性。

防止故障扩散
当某个服务发生故障或者响应缓慢时,熔断器会快速失败并阻止改服务的进一步调用,从而避免故障到调用该服务的其他服务。

迅速恢复
断路器会周期性地尝试恢复服务调用,如果检测到服务恢复正常,则会恢复正常调用路径。

提供降级处理
当服务调用被断路器阻止时,可以提供替代的降级逻辑,确保系统在部分功能不可用时仍能提供基本的服务。

监控和报警
断路器通常会记录失败次数和响应时间等指标,这些数据可以用于监控系统健康状况并触发报警。

CircuitBreaker的三种状态

Closed(关闭):
正常状态下,断路器处于关闭状态,所有请求都正常通过。如果失败次数超过预设阈值,断路器将切换到打开状态。

Open(打开):
当断路器处于打开状态时,所有请求都会立即失败并执行降级逻辑。经过一段时间的休眠期后,断路器将切换到半开状态。

Half-Open(半开):
在半开状态下,断路器会允许一部分请求通过以检测服务是否恢复。如果这些请求成功,则断路器切换回关闭状态;否则切换回打开状态。

Sleuth(Micrometer)+ZipKin分布式链路追踪

Sleuth 和 Zipkin 是用于分布式系统中的分布式链路追踪解决方案,它们可以帮助开发者了解和分析微服务架构中请求的流转过程,从而优化性能、发现瓶颈和解决故障。

分布式链路追踪
追踪请求在各个微服务中的流转路径,帮助了解请求的生命周期和各个服务间的调用关系。

性能监控和分析
收集和分析请求的延迟数据,找出系统中的性能瓶颈和高延迟点。

故障排查
通过追踪具体请求的路径,可以快速定位和解决系统中的故障和异常。

依赖关系分析
分析微服务之间的依赖关系,了解服务调用的拓扑结构。

Sleuth 和 Zipkin 的基本概念

Span(跨度)
表示一次调用过程或操作,包含开始时间、结束时间、标签等信息。

Trace(追踪)
由一组 Span 组成,表示一个请求的完整调用链路。

Annotation(注解)
用于记录 Span 中的特定事件(如请求开始、请求结束等)。

Gateway

在微服务架构中,API Gateway(API 网关)是一种重要的设计模式,用于统一管理和代理微服务的外部请求。Spring Cloud Gateway 是 Spring Cloud 提供的一种基于 Spring 5、Spring Boot 2.x 和 Project Reactor 的 API 网关实现。

请求路由:
将客户端请求路由到相应的微服务,根据 URL 路径、请求参数等进行路由匹配和转发。

负载均衡:
集成负载均衡机制,将请求分发到多个服务实例,提高系统的高可用性和性能。

安全认证与授权:
通过集成安全组件,实现对请求的身份认证和权限校验,保护后端服务的安全。

请求聚合:
将多个微服务的响应聚合成一个响应,减少客户端的请求次数,提高访问效率。

流量控制:
实现限流、熔断、重试等流量控制策略,保护后端服务免受突发流量冲击。

日志和监控:
记录和分析请求日志,提供丰富的监控和统计数据,帮助运维人员了解系统的运行状态。

协议转换:
支持不同的通信协议转换,例如 HTTP 到 HTTPS,或者 REST 到 gRPC。

SpringCloudAlibaba

Nacos服务注册与配置中心

Nacos(Naming Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务治理的解决方案,广泛用于微服务架构中。Nacos 提供了一站式的服务管理功能,包括服务发现与注册、分布式配置管理和动态 DNS 服务等。

服务发现与注册:
服务注册:微服务在启动时,将自身信息(如服务名、IP 地址、端口等)注册到 Nacos 中。
服务发现:其他微服务可以通过 Nacos 查询已注册的服务列表,实现服务间的通信。

配置管理:
集中式管理:Nacos 提供了一个中心化的配置管理平台,可以统一管理分布式系统中的各种配置。
动态配置:支持配置的热更新,无需重启应用即可使配置生效。

服务治理:
负载均衡:结合 Nacos 和负载均衡组件,可以实现流量的均衡分配。
熔断和降级:通过与熔断器等服务治理组件的结合,提升系统的容错性和稳定性。

动态 DNS:
提供 DNS 服务,可以通过域名来访问服务,从而实现更加灵活的服务调用方式。

Sentinel实现熔断与限流

Sentinel 是阿里巴巴开源的一款面向分布式系统的流量控制、熔断降级和系统保护的解决方案。它旨在帮助开发者构建可靠性和弹性的微服务架构,通过多种流量控制策略和系统保护功能,确保系统在高并发和高负载情况下的稳定性。

流量控制(限流):
根据设定的规则限制请求的速率,防止系统过载。可以基于 QPS、线程数等指标进行限流。

熔断降级:
当某个服务出现异常或响应时间过长时,Sentinel 可以自动触发熔断机制,快速失败并返回默认值或降级处理,从而保护系统不受连锁故障的影响。

系统自适应保护:
通过系统自适应保护功能,Sentinel 可以根据系统的实时状态(如系统负载、CPU 使用率等)自动调整流量控制策略,确保系统在高负载下的稳定性。

热点参数限流:
针对具有高访问频率的热点参数进行限流,如接口中某些特定参数的访问控制。

实时监控和报警:
提供实时的监控和报警功能,通过控制台可以查看系统的实时运行状态和各项指标,帮助及时发现和处理问题。

Seata分布式事务

Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的一款分布式事务解决方案。它旨在解决微服务架构中跨多个数据库和服务的分布式事务问题,确保数据的一致性和完整性。Seata 提供了高性能的分布式事务协调能力,支持多种事务模式,如 AT(Automatic Transaction)、TCC(Try-Confirm-Cancel)和 SAGA 模式。

分布式事务管理:
Seata 可以管理跨多个服务和数据库的分布式事务,确保事务的一致性和完整性,防止数据不一致问题。

简化开发:
通过提供自动化的事务管理,Seata 简化了开发人员处理分布式事务的复杂性,减少了编码量和错误概率。

高性能:
Seata 设计为高性能事务协调器,提供低延迟和高吞吐量的事务处理能力,适用于高并发场景。

多种事务模式:
Seata 支持多种分布式事务模式,包括 AT、TCC、SAGA 和 XA,满足不同业务场景的需求。

Seata 的主要功能

AT 模式:
Automatic Transaction 模式是 Seata 提供的自动化事务管理模式,适用于经典的两阶段提交协议。通过代理数据库驱动,实现对业务 SQL 的自动拦截和解析,并生成相应的回滚日志。

TCC 模式:
Try-Confirm-Cancel 模式是一种显式编程的分布式事务管理方式。开发者需要实现三个操作:Try(预留业务资源)、Confirm(确认操作)和 Cancel(取消操作),以保证事务的最终一致性。

SAGA 模式:
SAGA 是一种长事务解决方案,通过将一个全局事务拆分为多个子事务,并为每个子事务提供补偿操作,保证事务的最终一致性。

XA 模式:
XA 是一种标准的两阶段提交协议,Seata 支持 XA 协议的分布式事务管理。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com