dubbo分布式调用传参数

背景:现有代码做改造,原有结构是直接通过servlet的service()方法做完全部业务逻辑;现在改造结构,将service()方法拆分为几个服务,通过dubbo框架,将服务组装出业务逻辑。

问题:以前结构有用到threadlocal线程局部变量(比如用来存session),现在改造程序结构,拆分出的服务在别的jvm线程中运行,肯定取不到threadlocal变量。

想知道dubbo框架有没有可以用来传一些例如session变量信息的方法。

阅读 8.6k
2 个回答

通过dubbo的RpcContext的attachment(map存储keyvalue),可以隐式传参。

新手上路,请多包涵

但是有一个情况会导致attachment失效。
A作为http请求入口,产生了用户session对象,先dubbo调用服务B,此时B能得到,B返回到A后,A再从rpccontext获取attachment就为空了,而且A再次调用C(类似于A做调度),C得到的也是空。不知道有没有遇到过?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题