[apache/dubbo]dubbo 中 yaml xml 注解 配置失效的地方

2023-12-18 497 views
6
Environment
  • Dubbo version: 3.2.0-beta.6-SNAPSHOT
  • Operating System version: macOs
  • Java version: 8
  1. 在@DubboReference client指定一个自己实现spi拓展的NettyTransporter并未生效 2.在spring以xml配置client是可以成功的

Pls. provide [GitHub address] to reproduce this issue. 一个error example 你可以运行provider1和provider2 然后运行 consumer中test中的VersionServiceStarIT文件,发现若是使用注解@DubboReference中的client指定自己实现的使用的client是失效的 https://github.com/dengWuuu/dubbo-error

回答

7

并且我希望大家发现注解中如果有些配置也没能生效的话,同样发在这个issue 然后放上错误example github地址

3

是可以直接获取扩展,而且我发现的是配置的client和loadbalance都是在proxy都进行依赖注入后,才被设置进入配置中,在getTransporter的时候client判断为null,只能获取到默认的NettyTransporter

4

所以这是个bug对吧

5

dubbo版本3.1.8-SNAPSHOT也是失效的

6

似乎在使用注解时,main包下的@DubboReference会覆盖test包下的@DubboReference的配置属性

可以通过测试:

//main包下
@Component
public class Task implements CommandLineRunner {

    @DubboReference(version = "*", loadbalance = "roundrobin", client = "myNetty")
    private VersionService versionService;
    //...
//test包下
@RunWith(SpringRunner.class)
@SpringBootTest
public class VersionServiceStarIT {

    @DubboReference
    private VersionService service;

MyNettyTransporter.getConnectedCount() == 2

不能通过测试:

//main包下
@Component
public class Task implements CommandLineRunner {

    @DubboReference(version = "*")
    private VersionService versionService;
    //...
//test包下
@RunWith(SpringRunner.class)
@SpringBootTest
public class VersionServiceStarIT {

    @DubboReference(version = "*", loadbalance = "roundrobin", client = "myNetty")
    private VersionService service;
    //...

MyNettyTransporter.getConnectedCount() == 0

我不清楚这是否算是bug。