最近遇到的需求是 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 透传相关推荐

  1. 关于Spring Cloud Zuul网管上传文件乱码问题

    Spring Cloud Zuul现在对于上传文件有两种处理方式,一种是用spring mvc,另一种是zuulServlet.spring mvc对文件处理不是很好,会导致乱码问题,zuulServ ...

  2. java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现

    在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2 ...

  3. Spring Cloud Feign的文件上传实现

    福利持续进行中,免费加入知识星球和斐讯K3抽奖等你来!!! 在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现. 服务提供 ...

  4. SpringCloud教程- 服务链路追踪(Spring Cloud Sleuth)(SpringCloud版本Greenwich.SR4)

    文章目录 一.Sleuth简介 二.为何使用Sleuth 三.构建工程 server-zipkin zipkin-serivce-hi zipkin-server-hello 四. 启动工程演示 代码 ...

  5. 尚硅谷springcloud第二季笔记_外行人都能看懂的 Spring Cloud,错过了血亏

    一.前言 这篇主要来讲讲SpringCloud的一些基础的知识(我就是现学现卖了,主要当做我学习SpringCloud的笔记吧!)当然了,我的水平是有限的,可能会有一些理解错的的概念/知识点,还请大家 ...

  6. spring cloud 微服务相关信息

    什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章"Microservices". 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服 ...

  7. Spring Cloud 架构 五大神兽的功能

    什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章"Microservices". 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服 ...

  8. Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失(续)

    前言 上篇文章<Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失>我们对ThreadLocal数据丢失进行了详细的分析,并通过代码的方式复现了这个问题. ...

  9. Dubbo与Spring Cloud

    目录 1.Sping Cloud 2.Dubbo 1.Spring Cloud Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是 ...

最新文章

  1. 面试官问:Integer 如何实现节约内存和提升性能的?
  2. Swift 中 String 取下标及性能问题
  3. java 及时通讯弹幕技术 视频播放 websocket SSM 集成代码生成器 源码
  4. DedeCMS生成首页html静态文件的教程
  5. 为什么选择angular?-学习笔记
  6. 查看虚拟机cpu型号_虚拟机管理器(Virtual Machine Manager)简介 | Linux 中国
  7. mpu 配置内存空间_ARM存储器之:存储保护单元MPU
  8. java中regex_Java 9中的新Regex功能
  9. PHP超全局变量$_SERVER
  10. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
  11. Android美工坊--一个QQ登录验证的小例子
  12. mysql命令查找失效索引_mysql查询时无效索引的简单总结
  13. c++如何打印一维数组首地址_4.1 数组的定义
  14. 量子位首款周边卫衣上线,给你AI的力量
  15. STL - queue(队列)
  16. 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
  17. python控制安捷伦频谱仪_通过 python 对罗德施瓦茨矢网、信号源、频谱仪的控制...
  18. 苹果屏蔽更新描述文件_iPhone|IOS10-IOS12屏蔽系统更新描述文件|去除设置①小红点教程...
  19. 给定经纬度计算距离_根据经纬度计算两点间距离JAVA版
  20. SUCTF2019-hardCPP WP

热门文章

  1. python编程时显示语法错误_Python编程的10个经典错误及解决办法
  2. Prometheus实现API监控实施方法
  3. PC客户端抓包分工具FIddler+Proxifer
  4. 【FI】总账余额表和总账明细表不一致问题
  5. 面试 | 商汤科技面试经历之Promise红绿灯的实现
  6. TextBox回车失去焦点
  7. python 3d气泡图 python 3d 散点图
  8. android vsync,Android 显示系统:Vsync机制
  9. 高手总结的9种 OOM 常见原因及解决方案
  10. 【第四季《中国好声音》歪评二:双盲眼模式掀起好声音高潮】