实用指南:(七——下)复习(分布式链路追踪/Rabiit MQ使用/Api Gateway)



项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt
airflow

四、分布式链路追踪

  • Serilog:只是为了定位哪一行代码出现了异常
  • Jaeger+openTelemetry:追踪一个请求在分布式系统中经过的所有服务/组件,例如 比如:一次下单请求 → API 网关 → 订单服务 → 支付服务 → 消息队列 → 库存服务 → 邮件服务。

4.1 创建分布式追踪服务

1. 需要的包

    
    
    
    
    
    
    

2. 注册Trance服务

  1. 在Common模块的Infrastructure里配置
  2. 不同微服务传入的服务名称需要不一样,以便于trace不同的微服务
  3. 添加采集的指标,例如.net core, http, efcore 等
  4. 单独需要配置MassTransit的
  5. 将Trace数据导出,可以用到不同的监控平台

在这里插入图片描述

3. 微服务名称传入

  1. 在单独的文件夹里,配置当前微服务的 名称
    在这里插入图片描述
  2. 在Program.cs传入微服务的名称

在这里插入图片描述

4. 在Logging的Pipeline behavior里添加

  1. 在之前的Logging的AOP日志中,添加openTelemetry的trace tag
    在这里插入图片描述
  • 从自己的AOP中,获取到模块和request的名称,并且添加到openTelemetry的trace中,这样就给opentelemetry实现了具体的requests级别的Trace
    在这里插入图片描述
  • 从请求类型的全名(Namespace.ClassName)里解析出模块名,比如 Order.Application.Commands.CreateOrderCommand → Order。
  • 拿到请求类的名字,例如 CreateOrderCommand,作为请求的名字。

5. 注入OpenTele的

posted @ 2025-10-03 11:57  ycfenxi  阅读(7)  评论(0)    收藏  举报