php接入spring cloud,PHP ---> springcloud trackid 透传

最近遇到的需求是 php端调用 spring cloud 提供的http 接口。 需要把php端的生成的trackid 透传到spring cloud。

其实就是把自定义属性放入MDC, 然后在logback 里面用设置 %X{自定义属性名字}  就能打印出来。

2. 了解spring cloud trackid 透传原理

0f463eb6e7d8

1. springcloud 有一个前置filter, 目的从request header 获取X-Span-Export;X-B3-ParentSpanId;X-B3-TraceId;X-B3-SpanId 这个4个熟悉, 如果没有值的话 就自动生成, 然后放入trackcontext,接着从trackcontext获取属性放入 MDC

2.在处理自己的业务逻辑的时候, 就打印放入MDC 里面的自定义属性。

3.业务逻辑处理结束后, 有一个后置拦截器。从trackcontext把属性获取出来放入request header。 传入下一个请求。就这样下一个请求也从步骤一开始, 从header 获取相关属性。

要解决php trackid 透传到spring cloud。方案有两种

第一种:

创建一个filter, 过滤前段请求, 获取来自php端 traceidFromPHP, 然后放入MDC。

创建一个ClientHttpRequestInterceptor。从MDC拿出traceidFromPHP 放入Request header 。

第二种方案:

PHP 兼容spring cloud, 在调用spring cloud 接口的时候,直接把X-Span-Export;X-B3-ParentSpanId;X-B3-TraceId;X-B3-SpanId 放入header 即可。注意 名字要一模一样, 生成id的策略要和spring cloud 一直。php 应该有对应的组件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值