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 的地方,通常情况下都会存在问题,需要做改造。

  • 相关阅读:
    jsp四个域对象
    java,qq邮箱发邮件工具类(需要部分修改)
    Java使用qq邮箱发邮件实现
    JavaScript 高级
    JavaScript基础
    JQuery 高级
    JQuery 基础
    团队最后一次作业:总结
    C++多态
    结对编程
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10473407.html
Copyright © 2011-2022 走看看