医疗网站建设怎么优化电脑系统
这里的链路指的是客户端向服务发起一个请求,该请求所经过的路线,也可以说是该请求经过的流量
例如:
客户端发起一个下订单的请求其流量过程:
request—>service—>order-web—>order_srv—>mysql—>order_srv—>order-web—>service—>response
这就一个请求的完整链路
链路追踪
指我们通过一些手段将链路进行监控, 对于系统调试和维护链路追踪是非常重要的,
尤其微服务中,我们知道各个微服务部署在不同的服务器上,并且每一个微服务可能是不同的人开发的,如果我们不做链路追踪,微服务之间相互调用,假如有的微服务出问题了,整个系统都会受影响,
那么我们怎么知道是哪一个微服务出的问题,找谁维护等一系列问题。
目前比较流行的Tracing开源方案Jaeger进行实践,使用jaeger-client-go这个库作为client
github地址:GitHub - jaegertracing/jaeger-client-go: Jaeger Bindings for Go OpenTracing API.
官方文档的demo:example
首先,本地起一个jaeger服务作为测试用的服务端,官方提供了”All in One”的docker镜像, 启动Jaeger服务只需要一行代码:
docker run -d --name jaeger \-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \-p 5775:5775/udp \-p 6831:6831/udp \-p 6832:6832/udp \-p 5778:5778 \-p 16686:16686 \-p 14268:14268 \-p 9411:9411 \jaegertracing/all-in-one:1.12