admin管理员组文章数量:1026989
php接入spring cloud,PHP
最近遇到的需求是 php端调用 spring cloud 提供的http 接口。 需要把php端的生成的trackid 透传到spring cloud。
其实就是把自定义属性放入MDC, 然后在logback 里面用设置 %X{自定义属性名字} 就能打印出来。
2. 了解spring cloud trackid 透传原理
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 应该有对应的组件。
php接入spring cloud,PHP
最近遇到的需求是 php端调用 spring cloud 提供的http 接口。 需要把php端的生成的trackid 透传到spring cloud。
其实就是把自定义属性放入MDC, 然后在logback 里面用设置 %X{自定义属性名字} 就能打印出来。
2. 了解spring cloud trackid 透传原理
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 应该有对应的组件。
本文标签: php接入spring cloudphp
版权声明:本文标题:php接入spring cloud,PHP 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1693507633a226164.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论