背景:现有代码做改造,原有结构是直接通过servlet的service()方法做完全部业务逻辑;现在改造结构,将service()方法拆分为几个服务,通过dubbo框架,将服务组装出业务逻辑。
问题:以前结构有用到threadlocal线程局部变量(比如用来存session),现在改造程序结构,拆分出的服务在别的jvm线程中运行,肯定取不到threadlocal变量。
想知道dubbo框架有没有可以用来传一些例如session变量信息的方法。
背景:现有代码做改造,原有结构是直接通过servlet的service()方法做完全部业务逻辑;现在改造结构,将service()方法拆分为几个服务,通过dubbo框架,将服务组装出业务逻辑。
问题:以前结构有用到threadlocal线程局部变量(比如用来存session),现在改造程序结构,拆分出的服务在别的jvm线程中运行,肯定取不到threadlocal变量。
想知道dubbo框架有没有可以用来传一些例如session变量信息的方法。
但是有一个情况会导致attachment失效。
A作为http请求入口,产生了用户session对象,先dubbo调用服务B,此时B能得到,B返回到A后,A再从rpccontext获取attachment就为空了,而且A再次调用C(类似于A做调度),C得到的也是空。不知道有没有遇到过?
8 回答6.5k 阅读
4 回答701 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答4.3k 阅读
1 回答2.1k 阅读✓ 已解决
通过dubbo的RpcContext的attachment(map存储keyvalue),可以隐式传参。