谈谈服务管理平台的设计与实践
2019-10-24 本文已影响0人
先生zeng
定义
-
服务管理平台
- 服务管理平台可以抽象出服务的特征,对服务进行管理,对服务的提供方和服务的调用方分别进行可视化管理。
- 服务发布需要进行注册,服务节点节点上线需要在服务管理平台确认
- 调用服务必须经过工单申请,经过服务提供方同意,按需申请,按需调用。
-
功能
- 管理
- 双方平台注册,在线管理、平台发布管控指令、配置管理、服务熔断/降级、调用关系控制。
- 度量
- 服务质量、健康指数、问题追逐
- 监控
- 多维度流量数据、实时准确、告警、流量控制
- 管理
为什么需要?
- 服务增加了一台节点,调用方手动修改配置重启
- 服务响应时间多少
- 服务调用来源有哪些
- 服务出现问题,负责人不能知晓
- 服务出现问题的原因分析
所以需要一个服务管理平台。
本质
服务的可视化治理
生态环境
- 服务生态环境
- 服务运行环境
上游及下游,RPC客户端和RPC服务端
服务端分别于三个模块进行通信。 -
服务管理平台运行环境
三个模块
- 服务运行环境
服务管理平台运行的工作机制
服务方、调用方都是异步上报采集到的数据
1.上报服务注册(写入mysql)
2.拉去监控数据维度(mysql中取出)
3.拉去服务节点(通过web,mysql)
4.拉去监控数据维度(web,mysql)
5.调用注册服务
6.上报数据(使用udp的方式,netty)
7.推送数据收集维度
8.推送屏蔽调用方
总体架构
质量与监控是一个使用UDP的方式传输,就是收集中心,管理平台是一个web程序,其中的数据缓存在codis,MQ暂时是没有使用的,服务运行集群包含RPC客户端和服务端。控制中心是一个使用Gossip协议的tcp程序。
image.png收集数据的存储方案
需求:
根据服务名、函数名、调用方查询耗时情况以及调用次数情况
如何选择呢?一般做分布式预计算、集中统计结果落地、MySQL+redis
业务无感知,系统高弹性
保证高可用