Issue 1:
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.4.1

Operating System version: ANY

Java version: ANY

Description

We started using "registry-multiple" for high availability of Registry Center, but found that "multiple-registry" configuration was not beautiful enough.

We wish to transform like:

<dubbo:registry protocol="multiple">
<dubbo:child-registry key="z1" protocol="zookeeper" address="12.34.56.1:2181,12.34.56.2:2181,12.34.56.3:2181"/>
<dubbo:child-registry key="z2" protocol="zookeeper" address="12.34.56.4:2181" register="false"/><!-- subscribe only-->
<dubbo:child-registry key="r1" protocol="redis" address="9.8.7.6:3030"/>
</dubbo:registry>

And we have completed code.

Issue 2:
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.6.2~2.7.3

Operating System version: Mac

Java version: JDK1.8

Steps to reproduce this issue

Use GenericService to call $echo

Pls. provide [GitHub address] to reproduce this issue.

Expected Result

Echo what you send.

Actual Result

Consumer：

Failed to check the status of the service com.alibaba.dubbo.monitor.MonitorService. No provider available for the service hesc/com.alibaba.dubbo.monitor.MonitorService from the url zookeeper://192.168.99.51:2183/com.alibaba.dubbo.registry.RegistryService?application=dime-test&dubbo=2.6.2&generic=true&group=hesc&interface=com.alibaba.dubbo.monitor.MonitorService&pid=92150&register.ip=172.28.58.146&side=consumer&timestamp=1564539016305 to the consumer 172.28.58.146 use dubbo version 2.6.2

Producer: no $echo method error

If there is an exception, please attach the exception trace:

Method method = ReflectUtils.findMethodByMethodSignature(invoker.getInterface(), name, types);

java.lang.NoSuchMethodException: com.alibaba.dubbo.monitor.MonitorService.$echo(java.lang.String)

Code:

@GetMapping("/test")
public Result<String> test() {
try {

ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
// 弱类型接口名
reference.setInterface("com.alibaba.dubbo.monitor.MonitorService");
// reference.setInterface("com.alibaba.dubbo.rpc.service.EchoService");
// 声明为泛化接口
reference.setGeneric(true);

ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("dime-test");
reference.setApplication(applicationConfig);

reference.setGroup("hesc");
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://192.168.99.51:2183?backup=192.168.99.37:2183");

reference.setRegistry(registryConfig);

// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口引用
GenericService genericService = reference.get();

EchoService echoService = (EchoService) genericService;
// 基本类型以及Date,List,Map等不需要转换，直接调用
Object result = genericService
.$invoke("$echo", new String[] { "java.lang.String" }, new Object[] { "Haha" });
// Object result = echoService.$echo("Haha");

return Results.success(result.toString());
} catch (Exception e) {
return Results.error(e);
}
}