服务端代码:
public class DubboMulticastServer {
public static void main(String[] args) throws IOException {
//应用配置
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("user-server");
//配置中心
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setProtocol("multicast");
registryConfig.setAddress("224.5.6.7:1234");
//端口
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setName("dubbo");
protocolConfig.setPort(-1);
ServiceConfig serviceConfig = new ServiceConfig();
serviceConfig.setApplication(applicationConfig);
serviceConfig.setRegistry(registryConfig);
serviceConfig.setProtocol(protocolConfig);
serviceConfig.setInterface(UserService.class);
//serviceConfig.setInterface("com.test.client.UserService");
serviceConfig.setRef(new UserServiceImpl());
serviceConfig.export();
System.out.println("multicast:服务已暴露");
System.in.read(new byte[1024]);
}
}
消费端代码:
public class DubboMulticastClient {
public static void main(String[] args) throws IOException {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("user-client");
//指定注册中心
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setProtocol("multicast");
registryConfig.setAddress("224.5.6.7:1234");
ReferenceConfig referenceConfig = new ReferenceConfig();
referenceConfig.setApplication(applicationConfig);
referenceConfig.setRegistry(registryConfig);
referenceConfig.setInterface(UserService.class);
UserService userService = (UserService) referenceConfig.get();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
if (bufferedReader.readLine().equals("quit")) {
break;
}
System.out.println(userService.getUser(1));
}
}
}服务端启动日志信息
信息: [DUBBO] Register dubbo service com.test.client.UserService url dubbo://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&bind.ip=192.168.182.1&bind.port=20880&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 to registry registry://224.5.6.7:1234/org.apache.dubbo.registry.RegistryService?application=user-server&dubbo=2.0.2&pid=11580®istry=multicast&release=2.7.4.1×tamp=1586686322768, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:05 下午 org.apache.dubbo.qos.server.Server info
信息: [DUBBO] qos-server bind localhost:22222, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:05 下午 org.apache.dubbo.remoting.transport.AbstractServer info
信息: [DUBBO] Start NettyServer bind /0.0.0.0:20880, export /192.168.182.1:20880, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Register: dubbo://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Send multicast message: register dubbo://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 to /224.5.6.7:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Subscribe: provider://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&bind.ip=192.168.182.1&bind.port=20880&category=configurators&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: register dubbo://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Send multicast message: subscribe provider://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&bind.ip=192.168.182.1&bind.port=20880&category=configurators&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 to /224.5.6.7:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:06 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: subscribe provider://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&bind.ip=192.168.182.1&bind.port=20880&category=configurators&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:12:07 下午 org.apache.dubbo.registry.multicast.MulticastRegistry warn
警告: [DUBBO] Ignore empty notify urls for subscribe url provider://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&bind.ip=192.168.182.1&bind.port=20880&category=configurators&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809, dubbo version: 2.7.4.1, current host: 192.168.182.1
multicast:服务已暴露消费端启动日志信息:
信息: [DUBBO] Register: consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=consumers&check=false&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Send multicast message: register consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=consumers&check=false&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 to /224.5.6.7:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: register consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=consumers&check=false&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Subscribe: consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Send multicast message: subscribe consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 to /224.5.6.7:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: subscribe consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:48 下午 org.apache.dubbo.registry.multicast.MulticastRegistry warn
警告: [DUBBO] Ignore empty notify urls for subscribe url consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834, dubbo version: 2.7.4.1, current host: 192.168.182.1
Exception in thread "main" java.lang.IllegalStateException: Failed to check the status of the service com.test.client.UserService. No provider available for the service com.test.client.UserService from the url multicast://224.5.6.7:1234/org.apache.dubbo.registry.RegistryService?application=user-client&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944®ister.ip=192.168.182.1&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 to the consumer 192.168.182.1 use dubbo version 2.7.4.1
at org.apache.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:418)
at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:329)
at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:250)
at com.test.service.DubboMulticastClient.main(DubboMulticastClient.java:31)
Process finished with exit code 1
消费端启动时,服务端打印的信息:
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: register dubbo://192.168.182.1:20881/com.test.client.UserService?anyhost=true&application=user-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=13988&release=2.7.4.1&side=provider×tamp=1586686700019 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:47 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: register dubbo://192.168.182.1:20880/com.test.client.UserService?anyhost=true&application=user-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.test.client.UserService&methods=getUser&pid=11580&release=2.7.4.1&side=provider×tamp=1586686322809 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:48 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: unregister consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=consumers&check=false&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:48 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: unregister consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
四月 12, 2020 6:19:48 下午 org.apache.dubbo.registry.multicast.MulticastRegistry info
信息: [DUBBO] Receive multicast message: unsubscribe consumer://192.168.182.1/com.test.client.UserService?application=user-client&category=providers,configurators,routers&dubbo=2.0.2&interface=com.test.client.UserService&lazy=false&methods=getUser&pid=6944&release=2.7.4.1&side=consumer&sticky=false×tamp=1586686784834 from /127.0.0.1:1234, dubbo version: 2.7.4.1, current host: 192.168.182.1
本机环境:
1、安装了vmware虚拟机:centos7
2、网络:wifi
排错定位:
1、项目配置没有问题
尝试解决方案:
关闭vmware虚拟机网卡

重启server和client。但是结果还是失败。
然后通过查阅资料:建议说换zookeeper,multicast不稳定
版权声明:本文为yanwanwan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。