`
nepxion
  • 浏览: 37233 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(十) Nepxion-Thunder分布式RPC集成框架 - 监控中心

阅读更多

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方式发往第三方监控中心

  • 大小: 109 KB
5
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics