zoukankan      html  css  js  c++  java
  • 上下文传递

    https://mp.weixin.qq.com/s/ERj-PVSIr8XiMRTkIb6Inw

     上下文传递

    在传统的同步 RPC 调用时,业务往往通过线程变量来传递上下文,例如:TraceID、会话 Session、IP 等信息。异步化之后,由于潜在的线程切换和线程被多个消息交叉复用,通常不建议继续使用线程变量传递上下文。

    异步化之后,上下文传递的建议策略:

    1. 如果是 Lambda 表达式,可以直接引用局部变量,通过变量引用的方式将上下文信息传递到 Lambda 表达式中,后续可以通过方法传参等层层传递下去。

    2. 在所有发生线程切换的地方,显式的进行上下文信息的拷贝和清理,特别需要注意的是隐式线程切换,例如 Hystrix,底层会自己启线程池。

    3. 建议通过调用级的消息上下文来做参数传递,每个上下文都关联一次 RPC 调用,调用完成之后自动清理掉。

    4. 异步化之后,需要排重点查所有使用 ThreadLocal 的地方,通常情况下都会存在问题,需要做改造。

  • 相关阅读:
    执行.class文件
    Ant能干什么,编译?打包!
    C的随想
    微服务
    2018年宝鸡市高考复课报告会材料
    用图像解不等式
    高频易错题目01
    2018年宝鸡市二检数学题目解答
    点差法
    和事件的概率求法
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10473407.html
Copyright © 2011-2022 走看看