dubbo 隐式参数传递

隐式参数

dubbo中有attachments机制, 用于在业务请求之外传递附加信息, 可以理解为像http一样,在报文传送主要信息外,还有报文头可传递附加信息.

作用

服务端的鉴权, 公共参数的传递等.

流程

image
可以看出, 服务端与消费端之间隐式参数的传递也是通过filte实现的.

源码分析

dubbo-protocol-rest支持attachments机制,键值对位于http报文头

代码实现如下:

image

RpcContextFilter作用于http请求, 而com.alibaba.dubbo.rpc.filter.ContextFilter则是将Invocation中的attachment放入RpcContext中.
image

RpcContextFilter作用于http请求,调用时机早于ContextFilter等dubbo的filter

使用案例

image

image

清除attachment

image

由源码可知, 在调用服务结束后, 会清除掉PrcContext中的attachment, 即attachment并不会缓存, 每次调用setAttachment的键值对都是新的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。