微服务组件介绍
2023-09-28 20:56:17 0 举报
AI智能生成
微服务组件介绍
作者其他创作
大纲/内容
右侧数字点击展开
Nacos
服务注册与发现
服务列表
例:客户端(product微服务)相关配置
配置中心
配置管理(将微服务配置数据持久化到数据库中)
Sentinel
如何整合gataway实现核心下单链路的兜底方案(限流熔断降级等系统保护)?
利用 Sentinel 的网关流控特性,在网关入口处进行流量防护,或限制 API 的调用频率。
接入sentinal控制台,从nacos获取流控规则
如何实现sentinel规则持久化到nacos配置中心,保证客户端及时感知规则变化?
改造sentinel控制台,从nacos拉取和推送规则,gateway等微服务监听nacos中规则变化
实现拉取和推送规则的相关接口
修改Controller处理方法
注意网关、热点参数规则实体转换出现数据丢失的问题
SpringCloudGateway
路由匹配规则
路由断言工厂将predicates转变为路由判断条件,实现路径匹配、Header匹配
过滤器配置
1.GatewayFilter可以为后端请求动态添加请求头或请求参数。GlobalFilter:全局过滤器如LoadBalancerClientFilter、SentinelGatewayFilter,不需要在配置文件中配置,作用在所有的路由上,最终通过GatewayFilterAdapter包装成GatewayFilterChain能够识别的过滤器。 2.自定义过滤器工厂需继承AbstractNameValueGatewayFilterFactory且自定义名称必须要以GatewayFilterFactory结尾并交给spring管理。自定义全局过滤器定义方式是实现GlobalFilter接口。
如何通过全局过滤器实现请求认证和校验token,向后端微服务传递memberId?
SpringSecurityOauth2
如何整合gateway实现授权中心,保证微服务调用链路安全?
1.API网关作为OAuth2.0的资源服务器角色,实现接入客户端权限拦截、令牌解析并转发当前登录用户信息给下游微服务,下游微服务无需关心令牌格式解析以及OAuth2.0相关机制。gateway微服务在启动时向授权中心微服务获取存储Token的JWT(非对称加密RSA,jdk工具生成)的公钥,用来校验和解析前端请求头的token。
向认证中心请求公钥信息
封装请求头信息
2.如何搭建授权中心微服务?
2.1基于DB模式配置授权服务器存储第三方客户端的信息和非对称加密的JWT的token存储策略,增加用户信息到token中。进行授权服务器安全配置,获取tokenKey需要带入clientId,clientSecret
@EnableAuthorizationServer+extends AuthorizationServerConfigurerAdapter
增强Token信息
2.2认证服务器加载用户需要实现UserDetailsService接口,可以openfeign调用会员微服务获取用户信息
2.3配置SpringSecurity,除oauth2请求外其他请求都需要认证
Seata
原理:作为分布式事务协调者TC,采用SeataAT(改进后的两阶段提交协议)模式: 一阶段:TM(事务管理器)向TC发起全局事务,业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。核心在于对业务sql进行解析,转换成undolog,并同时入库。 二阶段分布式事务操作成功,则TC通知RM异步删除undolog。若分布式事务操作失败,TM(事务管理器)向TC发送回滚请求,RM 收到TC发来的回滚请求,通过 XID 和 Branch ID 找到相应的回滚日志记录,通过回滚记录生成反向的更新 SQL 并执行,以完成分支的回滚
如何将SeataServer和Client(TM、RM)注册到nacos中?
确保Server和Client的注册处于同一个namespace、group并且seata-server配置文件的事务分组, 要与client配置的事务分组一致
Skywalking
SkyWalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。skywalking agent和业务统绑定在一起,负责收集各种监控数据Skywalking oapservice是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库或elasticsearch查询数据,并返回数据给前端。
0 条评论
下一页