前言
SpringCloudAlibaba是微服务一站式解决方案,提供一系列组件实现微服务架构。
主要组件Nacos服务注册与配置管理、Sentinal服务降级与熔断、Seata分布式事务、RoketMq消息队列
提示:以下是本篇文章正文内容,下面案例可供参考
一、Nacos原理?
Nacos作为服务注册中心,提供简单易用的服务注册与发现。
服务提供者启动时,将自身的配置信息(IP地址、端口号)注册,Nacos存储到内存中,提供给服务消费者调用。
心跳检查机制:主动探测和被动探测
主动探测:Nacos定期发送心跳包给服务提供者,一定时间内未收到心跳响应,则认定该服务失效。
被动探测:服务消费者调用服务提供者失败,则认为服务失效。
动态配置原理:将服务配置信息存储到namespace,通过Api和注解将配置注入到服务;
通过监听机制,如果配置变更,会通知服务,重新拉取并更新配置。
二、Sentinel原理?
Sentinel提供流量控制和服务降级功能
流量控制:根据流量控制规则对服务进行控制,流量控制规则包括QPS、线程数、响应时间。当请求量超过阈值,会启用流量控制策略(快速失败、排队等待)进行处理,避免被大量请求压垮。
服务降级:当服务提供者出现故障或性能下降时,避免雪崩效用;根据熔断规则,直接返回错误或备用方案处理。熔断策略包括响应时间、基于异常比例等指标。