[apache/dubbo]dubbo provider怎么传递消息给consumer

2024-04-11 862 views
6

有个特殊的需求,需要让provider传递值给consumer,类似consumer能传递attachment给provider一样。

阅读源码发现,provider好像只能传递返回值或者异常给consumer。

请问有什么办法可以办到这一点吗?

Dubbo version: 2.5.3.1

回答

3

具体返回值不是provider自己提供的吗? 可以在provider返回值封装你要的对象. eg: interface UserService { UserInfo queryBy(long id); }

这里的UserInfo包含你要传回给consumer的信息. 如果还不能满足你的诉求,请举个代码样例,谢谢

4

这块如果是以attachements的形式还不支持,这种需求我也不是很确定有没有必要,能说下你的应用场景吗?

4

印象中attachment只能是provider到consumer的

5

@qixiaobo 你说反了,目前dubbo 在consumer调用provider会使用attachment

8

感觉这是回调的功能吧。服务端往消息费推送消息

3

如果provider能给consumer隐式回传参数,在某些特殊情况特别有用。我举个例子,如果consumer希望能打印调用provider的来回网络耗时,这时候就需要获取provider的处理耗时,通过consumer的耗时减去provider的处理耗时,可以得到来回网络耗时,这时候需要provider将处理耗时传过来,通过隐式传值能避免直接侵入正常业务。

7

@manzhizhen The scene you give is quite reasonable, i think we should support this feature.

2

Network loss is usually shown by tracing platform. But back pressure like server tells its status to client may be useful

4

对 说反了……2.5.3只能是消费者到提供者

5

这个问题解决了吗?修复的版本号是哪一个?不想用最新的

7

image