Skip to content

dubbo TagRouter does not work with dubbo:parameter #3875

Closed
@sanjy523892105

Description

  • I have searched the issues of this repository and believe that this is not a duplicate.
  • I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

  • Dubbo version: 2.7.1
  • Operating System version: win10
  • Java version: jdk1.8.0_101

Steps to reproduce this issue

  1. 使用 dubbo-demo-xml 项目,或者其他测试项目
  2. 启动两个provider示例,一个在 <dubbo:service/> 中加上tag="groupA" 我们叫他 p1,另一个不加tag 我们叫他 p2.
  3. <dubbo:reference>标签中添加<dubbo:parameter key="dubbo.tag" value="groupA"/> 之后将consumer 示例启动

  1. use dubbo-demo-xml, or other demo .
  2. prepare two providers, one set tag="groupA" at <dubbo:service/> called p1 , another with no tag called p2. start them.
  3. start a consumer instance ,after set <dubbo:parameter key="dubbo.tag" value="groupA"/> inside of <dubbo:reference>.

Expected Result

因为拥有相同的tag声明,consumer本应该会调用到p1示例.
consumer would connect p1 because of the same tag definition

Actual Result

但consumer依然可能连接到p2示例.
consumer also connects p2.


如果把 步骤3 的标签改为在调用代码中使用RpcContext.getContext().setAttachment("dubbo.tag","groupA"),是可以正常工作的。请问这两种方式有什么区别呢?

通过分析源码发现 在 RegistryDiscovery 中将consumer 端的parameter 整合到providerUrl 中。 请问为什么需要这步操作?

Metadata

Assignees

Labels

type/bugBugs to being fixed

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions