服务请求代理分发(zk为注册与发现)
2022-07-26 17:18:14 7 举报
登录查看完整内容
服务请求通过代理分发请求
作者其他创作
大纲/内容
下发指令并选择好哪台代理
方案1
smanage-mod-agent
apollo
下发请求+规则
3、请求转发
es
3、判断是否存在给服务下线的接口
中间件发现
nacos
smanage-mod-service
获取配置
2、获取地址
1、定时任务:更新服务列表
smanage-mod-apm
smanage-mod-sentinel
4、存在,则根据feign增强的鉴权去调用中间件接口
zk
上送
接口转发
前端请求
3、更新服务列表和区域
smanage-modagent(Openfeign)基于springsmanage-mod-agent-普通的代理服务,基于openFeign
数据收集
返回连接的redis
数据第一层
smanage-mod-agent(Openfeign)
1、获取sky链路数据
服务插件日志上送
一对一
smanage-mod-xxx
1、获取用户所有的定时任务
service
xxl-job
smanage-mod-job
1、/pageListByAppName(获得执行器列表)
smanage-mod-analysis
下发请求
发布标签规则
2、根据服务对应域下发指令
日志上送
1、服务下线
微服务治理平台
获取服务列表
filebeat kafka
skywalking
XXX区域中间件
Sentinel
获取中间件地址,鉴权配置
2、获取地址和接口
1、需要开发通用代理切面插件对请求进行封装并增强判断接口地址2、区域中间件地址需要写入smanage-mod-agent中劣势:1、需要自己管理和选择中间件,导致切面异常复杂2、区域下有多套同一服务,难以区分3、需要手工管理优势:1、smanage-mod-agent开发简单,仅做代理和带配置的注册到ZK即可
服务表
业务service
注册但注册时带有区域中间件的配置
多对多
注册
4、根据多个skywalking获取链路数据
域
下发指令+规则
数据查询
redis(cluster)
数据第二层
获取配置信息
通过配置获取服务所连接的redis
为什么使用ZK作为代理服务管理1、ZK节点树(ZNode)的结构符合按区域管理中间件的需求2、有Session 的心跳检测3、中间件改动幅度小,仅需要注册到zk即可4、支持手工注册节点
发布
2、下发指令
方案2
中间件和服务发现
1、需要开发通用代理切面插件--对请求进行封装并增强判断是否往代理服务器下发且下发到哪台2、微服务治理下发指令时需要增加规则去选择区域和服务3、区域中间件作为服务注册到zk上劣势:1、区域下有多套同一服务,难以区分2、中间件需要二次开发,不支持注册流程的可能需要手工配置服务优势:1、可以忽略区域中间件注册的服务2、无需管理区域中间件3、agent可以自己自定广播策略
feign增强,服务与服务之间增加鉴权(feignInterceptor)
返回配置
监控
服务发现
发布路由标签/flowmark/publish
kong
4、遍历服务对应的xxl-job上查询任务
下发指令
服务鉴权
3、多个服务查询对应的apollo上对应的xxl-job
xxl-job,sentinel,kong等
smanage-mod-middleware
redis
3、获取服务对应的skywalking地址
服务发现,中间件发现
0 条评论
回复 删除
下一页