但是微服务时代下,很多服务在各自的包,一旦出现问题,没有调用链监控就很难定位问题!
最后谁都查不出问题,全部甩锅网络问题~ 可能出错的事总会出错!!!(墨菲定律) 微服务需要应用监控!!!
为了这些监控软件而规范,支持很多语言无缝切换。
eBay的老员工跳槽到点评后开发了 CAT。
调用链监控主要适用于同步场景。异步调用一般不建议,因为异步多线程没有明确调用先后时序关系。实际有些场景(比如异步消息追踪)确实需要的话,也是可以做到的,原理就是在跨越线程边界的时候(类似跨越进程边界),需要把trace上下文向异步线程传递,具体做法一般需要定制。Skywalking的异步支持做的比较好,它提供的一些plugin有些已经支持异步追踪,如果你理解原理,也可以自己实现埋点,参考: https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Application-toolkit-trace-cross-thread.md
参考