背景:现有代码做改造,原有结构是直接通过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得到的也是空。不知道有没有遇到过?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
通过dubbo的RpcContext的attachment(map存储keyvalue),可以隐式传参。