SpringCloud全家桶---常用微服务组件(1)

注册中心:

*作用: 服务管理

Eureka(不推荐)读音: 优瑞卡

Nacos(推荐)

Zookeeper 读音: 如k波

Consul 读音:康寿

复制代码
**注册中心的核心功能原理(nacos)**
服务注册: 当服务启动时,会通过rest接口请求的方式向Nacos注册自己的服务
服务心跳:  NacosClient 会维护一个定时心跳持续通知NacosServer,默认5秒一次,超过15秒,会将服务健康状态设置为false(拉去时会忽略),超过30秒会剔除
服务发现: nacosClient定时任务,实时去拉去健康服务
服务终止: NacosClient会主动通过Rest请求NacosService,

负载均衡:

* 作用: 客户端的负载均衡

ribbon 读音: 瑞本

LodaBalancer(推荐)

服务调用

*作用: 能像调用本地方法一样优雅

Feign(不推荐)

OpenFeign(推荐)

Dubbo

配置中心

SpringCloud config

NacosConfig(推荐)

服务熔断:

*防止服务雪崩,防止流量激增打垮冷系统

Hystrix

sentinel(推荐) 读音: 申特闹

分布式事务

Seata

复制代码
有四种模式: AT、TCC、SAGA 和XA 

Seata实现原理:
两个阶段,三个角色
TC: 事务协调者,独立运行seata-server,用于接受事务注册,提交和回滚
TM: 事务管理者(发起者),告诉TC全局事务提交回滚
RM: 事务资源,每一个RM都会作为一个分支事务注册在TC

AT模式: 
第一阶段: 
TM(事务发起者)向TC申请开启一个全局事务,事务创建并生成一个全局唯一的XID
XID在微服务调用链路的上下文中传播
① seata会拦截"业务sql",解析sql语句
②查询 "业务SQL" 要更新的业务数据,在业务数据被更新前,将其保存成 "before image"
③执行 "业务SQL" ,更新业务数据
④查询更新后的数据,将其保存成 "after image"
⑤将 before image 和 after image 保存至 Undo Log 表中
生成行锁
以上操作全部在一个数据库事务内完成,这样保证了一阶段操作的原子性。
提交前RM(事务资源)会向TC(事务协调者)注册分支;
TM(事务发起者)向TC(事务协调者)发起针对XID的全局提交或回滚,将本地事务提交结果上报给TC

第二阶段:
提交:   因为 "业务SQL" 在一阶段已经提交至数据库,所以 Seata 框架只需将一阶段保存的快照数据(Undo Log )和行锁删掉,完成数据清理即可。
回滚:   校验当前数据和 after image 数据,数据一致说明没脏写,可以还原数据,脏写了就要转人工处理;
用before image 还原数据,删除undolog数据和行锁

服务网关

*作用: 一些本身跟业务无关的公共逻辑,鉴权,日志,限流,跨域

zuul

SpringCloudGateway(推荐)

linkred

Kong

复制代码
业务网关: 降级/熔断,负载均衡,鉴权,业务规则,参数校验
流量网关:  安全策略,流量分发,跨域实现

链路追踪

*作用: 追踪服务健康状况

Skywalking(推荐)

Zipkin

相关推荐
Flynn Liang2 小时前
上线后怎么排查 AI 调用?Spring AI Observability:token/延迟/成本埋点与全链路追踪
java·人工智能·spring·监控·可观测性·observability·springai
ZhengEnCi3 小时前
工科读研真的能抗学历贬值吗:研究生 vs 本科生的真实差距与选型判断
面试
VimorphTech3 小时前
每批开 4 个线程,为什么限制不住 TTS 的总并发?
java·spring boot·spring
Rain的Java大神之路5 小时前
国家数据集团校招、社招都开了:总部雄安,这些技术岗值得认真看看
java·后端·面试
Moment5 小时前
为什么这么多 Agent Harness 都选择 TypeScript
前端·后端·面试
软件技术NINI5 小时前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设
代码不停6 小时前
Spring Aop
java·数据库·spring
时间的拾荒人6 小时前
CMake 实战指南:从基础语法到静态库/动态库制作与链接
开发语言·c++·面试
Flynn Liang19 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
QCoding19 小时前
企业级Agent Evaluation实战:Agent能跑就能上线?AI Agent到底怎么测?
后端·spring