php接入spring cloud,PHP --- springcloud trackid 透传
最近遇到的需求是 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 --- springcloud trackid 透传相关推荐
- 关于Spring Cloud Zuul网管上传文件乱码问题
Spring Cloud Zuul现在对于上传文件有两种处理方式,一种是用spring mvc,另一种是zuulServlet.spring mvc对文件处理不是很好,会导致乱码问题,zuulServ ...
- java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现
在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2 ...
- Spring Cloud Feign的文件上传实现
福利持续进行中,免费加入知识星球和斐讯K3抽奖等你来!!! 在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现. 服务提供 ...
- SpringCloud教程- 服务链路追踪(Spring Cloud Sleuth)(SpringCloud版本Greenwich.SR4)
文章目录 一.Sleuth简介 二.为何使用Sleuth 三.构建工程 server-zipkin zipkin-serivce-hi zipkin-server-hello 四. 启动工程演示 代码 ...
- 尚硅谷springcloud第二季笔记_外行人都能看懂的 Spring Cloud,错过了血亏
一.前言 这篇主要来讲讲SpringCloud的一些基础的知识(我就是现学现卖了,主要当做我学习SpringCloud的笔记吧!)当然了,我的水平是有限的,可能会有一些理解错的的概念/知识点,还请大家 ...
- spring cloud 微服务相关信息
什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章"Microservices". 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服 ...
- Spring Cloud 架构 五大神兽的功能
什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章"Microservices". 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服 ...
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失(续)
前言 上篇文章<Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失>我们对ThreadLocal数据丢失进行了详细的分析,并通过代码的方式复现了这个问题. ...
- Dubbo与Spring Cloud
目录 1.Sping Cloud 2.Dubbo 1.Spring Cloud Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是 ...
最新文章
- 面试官问:Integer 如何实现节约内存和提升性能的?
- Swift 中 String 取下标及性能问题
- java 及时通讯弹幕技术 视频播放 websocket SSM 集成代码生成器 源码
- DedeCMS生成首页html静态文件的教程
- 为什么选择angular?-学习笔记
- 查看虚拟机cpu型号_虚拟机管理器(Virtual Machine Manager)简介 | Linux 中国
- mpu 配置内存空间_ARM存储器之:存储保护单元MPU
- java中regex_Java 9中的新Regex功能
- PHP超全局变量$_SERVER
- python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
- Android美工坊--一个QQ登录验证的小例子
- mysql命令查找失效索引_mysql查询时无效索引的简单总结
- c++如何打印一维数组首地址_4.1 数组的定义
- 量子位首款周边卫衣上线,给你AI的力量
- STL - queue(队列)
- 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
- python控制安捷伦频谱仪_通过 python 对罗德施瓦茨矢网、信号源、频谱仪的控制...
- 苹果屏蔽更新描述文件_iPhone|IOS10-IOS12屏蔽系统更新描述文件|去除设置①小红点教程...
- 给定经纬度计算距离_根据经纬度计算两点间距离JAVA版
- SUCTF2019-hardCPP WP