(十) Nepxion-Thunder分布式RPC集成框架 - 监控中心
程序员文章站
2022-04-20 23:50:48
...
Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/
通过MonitorStat.java去刻画监控的属性,包括
private String traceId; // 跟踪ID private String messageId; // 消息ID private String messageType; // 消息类型,取值:Request,Response private String fromCluster; // 消息来源的集群 private String fromUrl; // 消息来源的Url private String toCluster; // 消息发往的集群 private String toUrl; // 消息发往的Url private long processStartTime; // 调用的业务处理起始时间 private long processEndTime; // 调用的业务处理结束时间 private long deliverStartTime; // 调用的网络传输起始时间 private long deliverEndTime; // 调用的网络传输结束时间 private String interfaze; // 接口名 private String method; // 方法名 private String parameterTypes; // 方法参数,例如java.lang.String,int private String protocol; // 协议,例如netty, hessian等 private String application; // 应用名 private String group; // 组名 private boolean async; // 是否是异步或者同步 private String callback; // 回调接口名称 private long timeout; // 超时时间 private boolean broadcast; // 是否是广播模式 private String loadBalance; // 采用的负载均衡策略 private boolean feedback; // 消息是否需要回馈 private String exception; // 异常信息无论通过哪种方式监控,都可以拿到封装好的上述属性列表
1. 日志监控
通过Log4j的配置,把本地基于MonitorStat对象创建的Log生成到远端Splunk服务器硬盘上,Splunk服务器进行相关设置和过滤,就可以看到如上的日志统计。对于Splunk如何使用和工作,在这里就不做介绍了
2. Redis缓存监控
以TraceId为Key,MonitorStat的Json字符串为Value存入Redis缓存。所有分布式的服务方和调用方必须全部接入该Redis服务器(Redis服务器部署方式一般有三种,集群模式,哨兵模式,分片模式,在Thunder里面必须部署成哨兵模式或者集群模式,前者同时支持发布/订阅和做数据缓存用,后者支持数据缓存用)
3. 第三方WebService监控
每一个第三方WebService监控中心启动的时候,都往注册中心添加其URL,服务端和调用端通过连接注册中心,获取第三方监控中心的URL列表,同时也实现了对监控中心上下线的监听,达到分布式监控的目的。
服务端和调用端通过Apache 异步Http发送方式,把MonitorStat转化成Json字符串,用Post方式发往第三方监控中心
推荐阅读
-
(九) Nepxion-Thunder分布式RPC集成框架 - 治理中心
-
(十) Nepxion-Thunder分布式RPC集成框架 - 监控中心
-
(十三) Nepxion-Thunder分布式RPC集成框架 - 事件发布
-
(六) Nepxion-Thunder分布式RPC集成框架 - 点对点模型
-
(八) Nepxion-Thunder分布式RPC集成框架 - 注册中心
-
(七) Nepxion-Thunder分布式RPC集成框架 - 消息队列模型
-
(十一) Nepxion-Thunder分布式RPC集成框架 - 负载均衡和同步中心
-
(十二) Nepxion-Thunder分布式RPC集成框架 - 配置调优
-
(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
-
(十四) Nepxion-Thunder分布式RPC集成框架 - 调用链