文章目录
- 项目地址
- 四、分布式链路追踪
-
- 4.1 创建分布式追踪服务
-
- 1. 需要的包
- 2. 注册Trance服务
- 3. 微服务名称传入
- 4. 在Logging的Pipeline behavior里添加
- 5. 注入OpenTele的TraceId到Serilog里
-
- 6. 注册自定义中间件
- 4.2 Jaeger服务
-
- 1. docker-compose里添加服务
- 2. 设置openTelemetry导出trace的地址
- 3. 测试
- 五、Rabbit MQ
-
- 5.1 基础搭建
-
- 1. 创建docker 服务
- 2. 配置连接字符串
- 3. 让MassTransit支持mq的package
- 5.2 配置Rabbit MQ
-
- 1. 在Event bus里添加MQ的配置
- 2. 修改Masstransit内存为rabbitMQ
- 3. program里注册服务
- 5.3 消息队列注册
-
- 1. InfrastructureConfiguration
- 六、Api Gateway
-
- 6.1 基础搭建
-
- 1. 创建gateway
- 2. 创建gateway的容器
- 3. gateway所需要的包
- 6.2 配置gateway
-
- 1. 创建Program
-
- 2. Gateway所需要的服务配置
- 3. Yarp反向代理的设置
- 4. 整体流程
项目地址
dbt
airflow
四、分布式链路追踪
- Serilog:只是为了定位哪一行代码出现了异常
- Jaeger+openTelemetry:追踪一个请求在分布式系统中经过的所有服务/组件,例如 比如:一次下单请求 → API 网关 → 订单服务 → 支付服务 → 消息队列 → 库存服务 → 邮件服务。
4.1 创建分布式追踪服务
1. 需要的包
<PackageReference Include="Npgsql.OpenTelemetry" Version="8.0.2" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.8.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.11" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.8.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.0.0-rc9.14" />
2. 注册Trance服务
- 在Common模块的Infrastructure里配置
- 不同微服务传入的服务名称需要不一样,以便于trace不同的微服务
- 添加采集的指标,例如.net core, http, efcore 等
- 单独需要配置MassTransit的
- 将Trace数据导出,可以用到不同的监控平台

3. 微服务名称传入
- 在单独的文件夹里,配置当前微服务的 名称

- 在Program.cs传入微服务的名称

4. 在Logging的Pipeline behavior里添加
- 在之前的Logging的AOP日志中,添加openTelemetry的trace tag

- 从自己的AOP中,获取到模块和request的名称,并且添加到openTelemetry的trace中,这样就给opentelemetry实现了具体的requests级别的Trace

- 从请求类型的全名(Namespace.ClassName)里解析出模块名,比如 Order.Application.Commands.CreateOrderCommand → Order。
- 拿到请求类的名字,例如 CreateOrderCommand,作为请求的名字。
5. 注入OpenTele的
《(七——下)复习(分布式链路追踪/Rabiit MQ使用/Api Gateway)》 是转载文章,点击查看原文。