如果你确保你的代码没有错,那么百分之80%以上的错来源于版本。
1 报错 端口占用Caused by: java.net.BindException: Address already in use:bind &&无法开启dubbo报错 org.apache.dubbo.remoting.RemotingException: Failed to bind NettyServer on /192.168.251.44:28081
之前报端口占用,是因为使用了新版的dubbo admin,每次启动新版dubbo admin时,总会莫名其妙自动注册两个Mork服务(在zookeeper里也可以看到这两个服务),这两个服务占用了端口,导致我们自己的服务无法注册到zookeeper注册中心。(这种情况下,不是别的应用程序占用了端口,你去强行杀死占用端口的进程也没有用,因为它又会导致dubbo无法启动,服务也无法注册)(当然如果真的是因为别的应用程序占用了,该杀死进程还得杀死)
因此我的解决方法是:用回老版的dubbo admin 老版的dubbo admin比较难找,给一个链接:点击 https://github.com/kun-song/incubator-dubbo-ops
2 老版dubbo admin安装
1. 进入E:\software\incubator-dubbo-ops-master\dubbo-admin 目录,编辑application.yaml:
2. 进入E:\software\incubator-dubbo-ops-master 目录执行如下命令
mvn clean package
3.进入 E:\software\incubator-dubbo-ops-master\dubbo-admin\target ,执行如下命令
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
开启成功界面如下图: 4. 在地址栏输入localhost:7001
3 报错:java.lang.NoClassDefFoundError:org/apache/curator/framework/CuratorFrameworkFactory
报这个错:其实就是依赖没有找到,或者因为版本冲突。
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
如果你的监控页面没有变化,那么请重新打开一下dubbo admin的jar包~~~进行一次刷新
这时,无论通过zk-client,还是通过dubbo admin,都可以看到我们的服务注册进来了。
|