序言
咱们通过一个系列文章跟大家具体展现一个 go-zero 微服务示例,整个系列分十篇文章,目录构造如下:
- 环境搭建
- 服务拆分
- 用户服务
- 产品服务
- 订单服务
- 领取服务
- RPC 服务 Auth 验证
- 服务监控
- 链路追踪(本文)
- 分布式事务
冀望通过本系列带你在本机利用 Docker 环境利用 go-zero 疾速开发一个商城零碎,让你疾速上手微服务。
残缺示例代码:https://github.com/nivin-studio/go-zero-mall
首先,咱们来看一下整体的服务拆分图:
Jaeger
JaegerUberOpenTracing API
- 分布式跟踪信息传递
- 分布式事务监控
- 问题剖析
- 服务依赖性剖析
- 性能优化
Jaeger
clienttracingagentagentclienttracingthriftcollectorcollectoragenttracing
go-zeroJaeger
go-zeroJaegerZipkin
user apiTelemetry
$ vim mall/service/user/api/etc/user.yaml
Name: User
Host: 0.0.0.0
Port: 8000
...
Telemetry:
Name: user.api
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
user rpcTelemetry
$ vim mall/service/user/rpc/etc/user.yaml
Name: user.rpc
ListenOn: 0.0.0.0:9000
...
Telemetry:
Name: user.rpc
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
product apiTelemetry
$ vim mall/service/product/api/etc/product.yaml
Name: Product
Host: 0.0.0.0
Port: 8001
...
Telemetry:
Name: product.api
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
product rpcTelemetry
$ vim mall/service/product/rpc/etc/product.yaml
Name: product.rpc
ListenOn: 0.0.0.0:9001
...
Telemetry:
Name: product.rpc
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
order apiTelemetry
$ vim mall/service/order/api/etc/order.yaml
Name: Order
Host: 0.0.0.0
Port: 8002
...
Telemetry:
Name: order.api
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
order rpcTelemetry
$ vim mall/service/order/rpc/etc/order.yaml
Name: order.rpc
ListenOn: 0.0.0.0:9002
...
Telemetry:
Name: order.rpc
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
pay apiTelemetry
$ vim mall/service/pay/api/etc/pay.yaml
Name: Pay
Host: 0.0.0.0
Port: 8003
...
Telemetry:
Name: pay.api
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
pay rpcTelemetry
$ vim mall/service/pay/rpc/etc/pay.yaml
Name: pay.rpc
ListenOn: 0.0.0.0:9003
...
Telemetry:
Name: pay.rpc
Endpoint: http://jaeger:14268/api/traces
Sampler: 1.0
Batcher: jaeger
提醒:配置批改后,须要重启服务才会失效。
Jaeger UI
/api/user/userinfoapi接口
JaegerJaeger UI166865000http://127.0.0.1:5000/Jaeger UISearchServiceuser.apiFind Traces/api/user/userinfo
/api/user/userinfo
- 右上角的下拉菜单能够抉择不同的数据展现款式。
- 其余接口链路追踪效果图
我的项目地址
https://github.com/zeromicro/go-zero
go-zero
微信交换群
关注『微服务实际』公众号并点击 交换群 获取社区群二维码。