隐式参数
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的键值对都是新的.