分布式日志,调用链的监控设计思想

chenyanyan 2018-11-07

分布式日志的设计:参照分布式事物的设计思想

 A 独立的第三方服务:一但进入客户端设置好的切面,进入拦截器,校验有没有此注解,有的话向日志服务端发送需要记录的日志

  客户端

1,切面

2,注解  (可以是现成的@controller,@service注解)

  服务端 (也可以引入消息中间件异步处理请求)

3,需要记日志的时候,自己做的第三方服务,根据拦截的注解,记录请求,相应的日志

 B 每个系统中集成kafka,需要记录日志的时候通过kafka发送消息,当然也需要专门接收日志消息的服务,持久化消息日志---即专门用一个消息服务器异步记录每个系统需要记录的日志

 分布式系统调用链的设计:

  A 独立的第三方服务:一但进入客户端设置好的切面,进入拦截器,校验有没有此注解,有的话向日志服务端发送需要记录的日志

    客户端

 1,切面

 2,注解

    服务端(也可以引入消息中间件异步处理请求)

 3,在拦截到了相应的注解的时候,第一次生成一个id(没有id就生成,有就传递),后面调用下级的时候传递,将请求方的invoker元数据(ip 端口 类 方法  参数)+id记录入库

 ,将接受请求的下级的invoker元数据+id(上游传过来的id)入库,后面页面展现调用链的时候就按照id组织

  B 每个系统中集成消息插件,在调用下游之前通过消息服务记录这一级的invoker数据+id(一般为了减轻业务系统的压力,会采用异步的机制,将需要记录的

  元数据通过消息发送给专门记录调用链的消息接收服务),下游也是记录传入的id+元数据,由消息服务器异步记录

java的两个特色就是1,反射;2,注解

相关推荐

homesmile / 0评论 2012-04-25