博客专区 > 王孟君的博客 > 博客详情
一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例
王孟君 发表于2个月前
一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例
  1. 发表于 2个月前
  2. 阅读 1997
  3. 收藏 205
  4. 点赞 4
  5. 评论 8
330元/年抢阿里云香港云服务器,节省80%出海成本>>>   
本文给出一个整合Maven+Spring+Dubbo+Zookeeper的示例,并且一步步给出完成步骤,并对其中可能遇到的问题进行解决~

Maven模块化

创建一个名为dubbo-demo的Maven工程,该工程包含三个模块
  1. dubbo-demo-interface   (定义对外开放接口)
  2. dubbo-demo-provider   (接口实现)
  3. dubbo-demo-consumer (接口调用)
dubbo-demo工程中的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>dubbo-demo-provider</module> <module>dubbo-demo-consumer</module> <module>dubbo-demo-interface</module> </modules> </project> 关于dubbo-demo Maven工程的模块化构建,请参考博文【使用Maven构建模块化工程 接下来,我们就一步一步来完成interface、provider以及consumer模块的内容~

模块interface

定义接口

创建一个接口(GreetingService),包含一个hello接口,如: package com.xxx.dubbo.demo.service; /** * @author wangmengjun * */ public interface GreetingService { String hello(String name); } 简单的接口就定义好了~ 有了接口,就可以在Provider中完成接口的实现,并暴露接口服务为Dubbo服务给其它模块使用(如consumer)~

模块Provider

添加依赖包

  1. 添加interface依赖包
<dependency> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
  1. 添加spring依赖包
<!--引入Spring依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.framework.version}</version> </dependency>
  1. 添加dubbo依赖包
<!-- Dubbo相关 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.4-snapshot</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.10.6.Final</version> </dependency>
  1. 添加zk-client依赖包
<!-- ZK-client --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>   dubbo-demo-provider模块详细的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>dubbo-demo-provider</artifactId> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.framework.version>4.3.6.RELEASE</spring.framework.version> </properties> <dependencies> <dependency> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!--引入Spring依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.framework.version}</version> </dependency> <!-- Dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.4-snapshot</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.10.6.Final</version> </dependency> <!-- ZK-client --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> </dependencies> </project>

实现接口

编写GreetingService的实现类GreetingServiceImpl, 并实现hello方法~ package com.xxx.dubbo.demo.service.impl; import java.util.Date; import com.xxx.dubbo.demo.service.GreetingService; /** * @author wangmengjun * */ public class GreetingServiceImpl implements GreetingService { public String hello(String name) { System.out.println("Hello Service is calling : " + new Date()); String greetMessage = "Hello, " + name; return greetMessage; } }

配置XML文件

  1. spring-dubbo-provider.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <description>Dubbo Demo Service</description> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="dubbo-demo-provider" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" client="zkclient" /> <!-- dubbo缓存 --> <dubbo:protocol id="dubbo" name="dubbo" port="20880" threadpool="cached" threads="100" /> <!-- Greeting服务 --> <bean id="greetingService" class="com.xxx.dubbo.demo.service.impl.GreetingServiceImpl" /> <dubbo:service protocol="dubbo" interface="com.xxx.dubbo.demo.service.GreetingService" ref="greetingService" /> </beans>
  1. applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!--服务层配置 --> <import resource="classpath:spring-dubbo-provider.xml" /> </beans>

编写启动类

编写一个启动类Main package com.xxx.dubbo.demo.main; import java.io.IOException; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { @SuppressWarnings("resource") public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml"); context.start(); System.in.read(); } } 其中,
System.in.read(); 的作用是控制台输入任何字符退出~ 因为本文示例provider不是web工程,这个操作只是保持provider的服务一直开着~
接下来,我们继续来完成模块Consumer的代码和配置~

模块Consumer

添加依赖包

  1. 添加interface依赖包
<dependency> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
  1. 添加spring依赖包
<!--引入Spring依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.framework.version}</version> </dependency>
  1. 添加dubbo依赖包
<!-- Dubbo相关 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.4-snapshot</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.10.6.Final</version> </dependency>
  1. 添加zk-client依赖包
<!-- ZK-client --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> dubbo-demo-consumer模块详细的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>dubbo-demo-consumer</artifactId> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.framework.version>4.3.6.RELEASE</spring.framework.version> </properties> <dependencies> <dependency> <groupId>com.xxx.dubbo.demo</groupId> <artifactId>dubbo-demo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!--引入Spring依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.framework.version}</version> </dependency> <!-- Dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.4-snapshot</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.10.6.Final</version> </dependency> <!-- ZK-client --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> </dependencies> </project>

配置XML文件

  1. spring-dubbo-consume.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <description>Dubbo Demo Service</description> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="DemoProvider" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="172.0.0.1:2181" client="zkclient" /> <!-- dubbo缓存 --> <dubbo:protocol id="dubbo" name="dubbo" port="20880" threadpool="cached" threads="100" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference id="greetingService" interface="com.xxx.dubbo.demo.service.GreetingService" /> </beans>
  1. applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!--服务层配置 --> <import resource="classpath:spring-dubbo-consumer.xml" /> </beans>

编写测试类

dubbo-demo-consumer模块下,创建一个调用interface接口的方法~ package com.xxx.dubbo.demo.main; import java.io.IOException; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.xxx.dubbo.demo.service.GreetingService; public class Main { @SuppressWarnings("resource") public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); context.start(); GreetingService greetingService = (GreetingService) context.getBean("greetingService"); String greetMessage = greetingService.hello("Eric"); System.out.println("Consumer ==> " + greetMessage); context.destroy(); } }

Zookeeper安装和配置

安装

可以从zookeeper官网下载zookeeper安装包~ 本文使用的版本是3.4.6, 将下载的安装包解压缩即可。

配置

进入Zookeeper安装目录下的conf目录~ 复制zoo_sample.conf文件,并将复制的配置文件取名为zoo.conf~ 其内容如下: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/tmp/zookeeper # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 简单使用的话,可以不做修改~
至此,interface,provider以及consumer模块已经准备好,zookeeper也已经准备好~ 接下来就可以做相关的测试了~

测试 & 结果

启动Zookeeper

进入Zookeeper安装路径下的bin目录~
window系统中,启动zkServer.cmdLinux中,启动zkServer.sh~
启动zookeeper服务,

启动提供者

运行dubbo-demo-provider模块中的Main类~
  1. 运行之后,出现如下问题:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly.
  1. 根据描述 ,解决方法很简单,配置一个log4j.properties文件在resouce下即可
log4j.properties的内容简单如下: # Rules reminder: # DEBUG < INFO < WARN < ERROR < FATAL # Global logging configuration log4j.rootLogger=INFO,stdout ## Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss,SSS}] %l - %m%n   重新运行Main类,可以看出来,provider已经成功启动~ [INFO ][2017-05-18 21:06:13,577] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:582) - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@46309a10: startup date [Thu May 18 21:06:13 CST 2017]; root of context hierarchy [INFO ][2017-05-18 21:06:13,626] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317) - Loading XML bean definitions from class path resource [applicationContext.xml] [INFO ][2017-05-18 21:06:13,717] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317) - Loading XML bean definitions from class path resource [spring-dubbo-provider.xml] [INFO ][2017-05-18 21:06:13,779] - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter [INFO ][2017-05-18 21:06:14,097] com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:107) - [DUBBO] The service ready on spring started. service: com.xxx.dubbo.demo.service.GreetingService, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,213] com.alibaba.dubbo.config.ServiceConfig.exportLocal(ServiceConfig.java:513) - [DUBBO] Export dubbo service com.xxx.dubbo.demo.service.GreetingService to local registry, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,213] com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:473) - [DUBBO] Export dubbo service com.xxx.dubbo.demo.service.GreetingService to url dubbo://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,214] com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:484) - [DUBBO] Register dubbo service com.xxx.dubbo.demo.service.GreetingService url dubbo://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127 to registry registry://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=dubbo-demo-provider&client=zkclient&dubbo=2.5.4-SNAPSHOT&pid=18448&registry=zookeeper&timestamp=1495112774106, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,397] com.alibaba.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:69) - [DUBBO] Start NettyServer bind /0.0.0.0:20880, export /192.168.102.51:20880, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,434] org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:64) - Starting ZkClient event thread. [INFO ][2017-05-18 21:06:14,443] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:zookeeper.version=3.3.3-1073969, built on 02/23/2011 22:27 GMT [INFO ][2017-05-18 21:06:14,443] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:host.name=wangmengjun-PC [INFO ][2017-05-18 21:06:14,443] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.version=1.7.0_79 [INFO ][2017-05-18 21:06:14,443] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.vendor=Oracle Corporation [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.home=C:\Program Files\Java\jre7 [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.class.path=F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-provider\target\classes;F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-interface\target\classes;D:\java_tools\Reponsitories\Maven\org\springframework\spring-core\4.3.6.RELEASE\spring-core-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-context\4.3.6.RELEASE\spring-context-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-aop\4.3.6.RELEASE\spring-aop-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-beans\4.3.6.RELEASE\spring-beans-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-expression\4.3.6.RELEASE\spring-expression-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\com\alibaba\dubbo\2.5.4-snapshot\dubbo-2.5.4-snapshot.jar;D:\java_tools\Reponsitories\Maven\org\javassist\javassist\3.18.1-GA\javassist-3.18.1-GA.jar;D:\java_tools\Reponsitories\Maven\io\netty\netty\3.10.6.Final\netty-3.10.6.Final.jar;D:\java_tools\Reponsitories\Maven\com\github\sgroschupf\zkclient\0.1\zkclient-0.1.jar;D:\java_tools\Reponsitories\Maven\org\apache\zookeeper\zookeeper\3.3.3\zookeeper-3.3.3.jar;D:\java_tools\Reponsitories\Maven\jline\jline\0.9.94\jline-0.9.94.jar;D:\java_tools\Reponsitories\Maven\junit\junit\3.8.1\junit-3.8.1.jar;D:\java_tools\Reponsitories\Maven\log4j\log4j\1.2.14\log4j-1.2.14.jar [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.library.path=C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;.;C:\Program Files\Java\jdk1.7.0_79\bin;D:\develop\apache-jmeter-2.13\bin;C:\Program Files\TortoiseSVN\bin;D:\develop\Databases\Mysql\mysql-5.6.20\bin;D:\develop\Sonar\sonar-runner-2.4\bin;D:\develop\Sonar\sonarqube-5.1.1\bin;D:\develop\python\python-2.7.10\python.exe;C:\Program Files\TortoiseGit\bin;D:\develop\ZeroC\ZeroCIce-3.6.2\bin;D:\develop\apache-maven-3.3.3\bin;D:\develop\Sonar\sonar-scanner-2.8\bin;F:\JavaDeveloper\SQL\mysql-5.7.17-winx64\bin;F:\JavaDeveloper\Nodejs\nodejs7\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python36\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python35\Scripts\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python35\;C:\Program Files (x86)\OpenVPN\bin;C:\Users\wangmengjun\AppData\Local\Microsoft\WindowsApps;C:\Users\wangmengjun\AppData\Roaming\npm;. [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.io.tmpdir=C:\Users\WANGME~1\AppData\Local\Temp\ [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.compiler=<NA> [INFO ][2017-05-18 21:06:14,444] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.name=Windows 8.1 [INFO ][2017-05-18 21:06:14,445] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.arch=amd64 [INFO ][2017-05-18 21:06:14,445] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.version=6.3 [INFO ][2017-05-18 21:06:14,445] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.name=wangmengjun [INFO ][2017-05-18 21:06:14,445] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.home=C:\Users\wangmengjun [INFO ][2017-05-18 21:06:14,445] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.dir=F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-provider [INFO ][2017-05-18 21:06:14,446] org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:373) - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@7251c1ad [INFO ][2017-05-18 21:06:14,454] org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1041) - Opening socket connection to server /127.0.0.1:2181 [INFO ][2017-05-18 21:06:14,456] org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:949) - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session [INFO ][2017-05-18 21:06:14,608] org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:738) - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x15c1ba12c860000, negotiated timeout = 30000 [INFO ][2017-05-18 21:06:14,610] org.I0Itec.zkclient.ZkClient.processStateChanged(ZkClient.java:449) - zookeeper state changed (SyncConnected) [INFO ][2017-05-18 21:06:14,611] com.alibaba.dubbo.registry.support.AbstractRegistry.register(AbstractRegistry.java:302) - [DUBBO] Register: dubbo://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,699] com.alibaba.dubbo.registry.support.AbstractRegistry.subscribe(AbstractRegistry.java:325) - [DUBBO] Subscribe: provider://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&category=configurators&check=false&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:06:14,758] com.alibaba.dubbo.registry.support.AbstractRegistry.notify(AbstractRegistry.java:422) - [DUBBO] Notify urls for subscribe url provider://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&category=configurators&check=false&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127, urls: [empty://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&category=configurators&check=false&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127], dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1

消费者调用

接下来,最后一个步骤就是在dubbo-demo-consumer中,调用Dubbo服务即可~ 运行中的Main类,结果如下: [INFO ][2017-05-18 21:08:45,916] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:582) - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ff58334: startup date [Thu May 18 21:08:45 CST 2017]; root of context hierarchy [INFO ][2017-05-18 21:08:45,966] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317) - Loading XML bean definitions from class path resource [applicationContext.xml] [INFO ][2017-05-18 21:08:46,059] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317) - Loading XML bean definitions from class path resource [spring-dubbo-consumer.xml] [INFO ][2017-05-18 21:08:46,118] - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter [INFO ][2017-05-18 21:08:46,533] com.alibaba.dubbo.registry.support.AbstractRegistry.loadProperties(AbstractRegistry.java:232) - [DUBBO] Load registry store file C:\Users\wangmengjun\.dubbo\dubbo-registry-127.0.0.1.cache, data: {com.xxx.dubbo.demo.service.GreetingService=empty://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&category=configurators&check=false&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127}, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1 [INFO ][2017-05-18 21:08:46,545] org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:64) - Starting ZkClient event thread. [INFO ][2017-05-18 21:08:46,554] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:zookeeper.version=3.3.3-1073969, built on 02/23/2011 22:27 GMT [INFO ][2017-05-18 21:08:46,554] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:host.name=wangmengjun-PC [INFO ][2017-05-18 21:08:46,554] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.version=1.7.0_79 [INFO ][2017-05-18 21:08:46,554] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.vendor=Oracle Corporation [INFO ][2017-05-18 21:08:46,554] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.home=C:\Program Files\Java\jre7 [INFO ][2017-05-18 21:08:46,555] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.class.path=F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-consumer\target\classes;F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-interface\target\classes;D:\java_tools\Reponsitories\Maven\org\springframework\spring-core\4.3.6.RELEASE\spring-core-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-context\4.3.6.RELEASE\spring-context-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-aop\4.3.6.RELEASE\spring-aop-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-beans\4.3.6.RELEASE\spring-beans-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\org\springframework\spring-expression\4.3.6.RELEASE\spring-expression-4.3.6.RELEASE.jar;D:\java_tools\Reponsitories\Maven\com\alibaba\dubbo\2.5.4-snapshot\dubbo-2.5.4-snapshot.jar;D:\java_tools\Reponsitories\Maven\org\javassist\javassist\3.18.1-GA\javassist-3.18.1-GA.jar;D:\java_tools\Reponsitories\Maven\io\netty\netty\3.10.6.Final\netty-3.10.6.Final.jar;D:\java_tools\Reponsitories\Maven\com\github\sgroschupf\zkclient\0.1\zkclient-0.1.jar;D:\java_tools\Reponsitories\Maven\org\apache\zookeeper\zookeeper\3.3.3\zookeeper-3.3.3.jar;D:\java_tools\Reponsitories\Maven\jline\jline\0.9.94\jline-0.9.94.jar;D:\java_tools\Reponsitories\Maven\junit\junit\3.8.1\junit-3.8.1.jar;D:\java_tools\Reponsitories\Maven\log4j\log4j\1.2.14\log4j-1.2.14.jar [INFO ][2017-05-18 21:08:46,555] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.library.path=C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;.;C:\Program Files\Java\jdk1.7.0_79\bin;D:\develop\apache-jmeter-2.13\bin;C:\Program Files\TortoiseSVN\bin;D:\develop\Databases\Mysql\mysql-5.6.20\bin;D:\develop\Sonar\sonar-runner-2.4\bin;D:\develop\Sonar\sonarqube-5.1.1\bin;D:\develop\python\python-2.7.10\python.exe;C:\Program Files\TortoiseGit\bin;D:\develop\ZeroC\ZeroCIce-3.6.2\bin;D:\develop\apache-maven-3.3.3\bin;D:\develop\Sonar\sonar-scanner-2.8\bin;F:\JavaDeveloper\SQL\mysql-5.7.17-winx64\bin;F:\JavaDeveloper\Nodejs\nodejs7\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python36\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python35\Scripts\;C:\Users\wangmengjun\AppData\Local\Programs\Python\Python35\;C:\Program Files (x86)\OpenVPN\bin;C:\Users\wangmengjun\AppData\Local\Microsoft\WindowsApps;C:\Users\wangmengjun\AppData\Roaming\npm;. [INFO ][2017-05-18 21:08:46,555] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.io.tmpdir=C:\Users\WANGME~1\AppData\Local\Temp\ [INFO ][2017-05-18 21:08:46,555] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:java.compiler=<NA> [INFO ][2017-05-18 21:08:46,556] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.name=Windows 8.1 [INFO ][2017-05-18 21:08:46,556] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.arch=amd64 [INFO ][2017-05-18 21:08:46,556] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:os.version=6.3 [INFO ][2017-05-18 21:08:46,556] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.name=wangmengjun [INFO ][2017-05-18 21:08:46,556] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.home=C:\Users\wangmengjun [INFO ][2017-05-18 21:08:46,557] org.apache.zookeeper.Environment.logEnv(Environment.java:97) - Client environment:user.dir=F:\JavaDeveloper\workspaces\SpringMVCDubboExample\dubbo-demo\dubbo-demo-consumer [INFO ][2017-05-18 21:08:46,558] org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:373) - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@4c52f14d [INFO ][2017-05-18 21:08:46,576] org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1041) - Opening socket connection to server /127.0.0.1:2181 [INFO ][2017-05-18 21:08:46,578] org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:949) - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session [INFO ][2017-05-18 21:08:46,605] org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:738) - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x15c1ba12c860001, negotiated timeout = 30000 [INFO ][2017-05-18 21:08:46,607] org.I0Itec.zkclient.ZkClient.processStateChanged(ZkClient.java:449) - zookeeper state changed (SyncConnected) [INFO ][2017-05-18 21:08:46,628] com.alibaba.dubbo.registry.support.AbstractRegistry.register(AbstractRegistry.java:302) - [DUBBO] Register: consumer://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=consumers&check=false&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:46,702] com.alibaba.dubbo.registry.support.AbstractRegistry.subscribe(AbstractRegistry.java:325) - [DUBBO] Subscribe: consumer://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=providers,configurators,routers&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:46,853] com.alibaba.dubbo.registry.support.AbstractRegistry.notify(AbstractRegistry.java:422) - [DUBBO] Notify urls for subscribe url consumer://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=providers,configurators,routers&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, urls: [dubbo://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=dubbo-demo-provider&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=18448&side=provider&threadpool=cached&threads=100&timestamp=1495112774127, empty://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=configurators&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, empty://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=routers&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463], dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:46,974] com.alibaba.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:287) - [DUBBO] Successed connect to server /192.168.102.51:20880 from NettyClient 192.168.102.51 using dubbo version 2.5.4-SNAPSHOT, channel is NettyChannel [channel=[id: 0x5830ab5f, /192.168.102.51:59578 => /192.168.102.51:20880]], dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:46,975] com.alibaba.dubbo.remoting.transport.AbstractClient.<init>(AbstractClient.java:105) - [DUBBO] Start NettyClient wangmengjun-PC/192.168.102.51 connect to the server /192.168.102.51:20880, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:47,030] com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:423) - [DUBBO] Refer dubbo service com.xxx.dubbo.demo.service.GreetingService from url zookeeper://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=DemoProvider&check=false&dubbo=2.5.4-SNAPSHOT&generic=false&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 Consumer ==> Hello, Eric [INFO ][2017-05-18 21:08:47,140] org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:987) - Closing org.springframework.context.support.ClassPathXmlApplicationContext@6ff58334: startup date [Thu May 18 21:08:45 CST 2017]; root of context hierarchy [INFO ][2017-05-18 21:08:47,140] com.alibaba.dubbo.registry.support.AbstractRegistry.unsubscribe(AbstractRegistry.java:343) - [DUBBO] Unsubscribe: consumer://192.168.102.51/com.xxx.dubbo.demo.service.GreetingService?application=DemoProvider&category=providers,configurators,routers&dubbo=2.5.4-SNAPSHOT&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:47,141] com.alibaba.dubbo.remoting.transport.netty.NettyChannel.close(NettyChannel.java:135) - [DUBBO] Close netty channel [id: 0x5830ab5f, /192.168.102.51:59578 => /192.168.102.51:20880], dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 [INFO ][2017-05-18 21:08:47,143] com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.disconnected(DubboProtocol.java:130) - [DUBBO] disconected from /192.168.102.51:20880,url:dubbo://192.168.102.51:20880/com.xxx.dubbo.demo.service.GreetingService?anyhost=true&application=DemoProvider&check=false&codec=dubbo&dubbo=2.5.4-SNAPSHOT&generic=false&heartbeat=60000&interface=com.xxx.dubbo.demo.service.GreetingService&methods=hello&pid=21572&side=consumer&timestamp=1495112926463, dubbo version: 2.5.4-SNAPSHOT, current host: 192.168.102.51 从上述日志中可以看出,hello接口已经成功调用,并输出了Consumer ==> Hello, Eric 当然,我们可以切换到provider的输出日志,包含hello方法被调用执行的时间信息~ Hello Service is calling : Thu May 18 21:08:47 CST 2017
至此,一个简单的Maven + Spring + Dubbb + Zookeeper整合示例就完成了。后续,可以将provider变成一个Web工程,如springMVC实现等,其中可以和MySQL或者NoSQL(如MongoDB等)集成,进一步完成其它功能~

问题解决参考

No appenders could be found for logger

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. 根据描述 ,解决方法很简单,配置一个log4j.properties文件在resouce下即可 log4j.properties的内容简单如下: # Rules reminder: # DEBUG < INFO < WARN < ERROR < FATAL # Global logging configuration log4j.rootLogger=INFO,stdout ## Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss,SSS}] %l - %m%n

dubbo标签xml配置文件报错

参考博文【Dubbo标签在xml配置文件中报错的解决方法

整个工程结构

  1. 打赏
  2. 点赞
  3. 收藏
  4. 分享
共有 人打赏支持
王孟君
粉丝 134
博文 86
码字总数 199852
评论 (8)
刘小菜
很详细。赞一个
蚂蚁搬五岳
不错的文章
北极心
项目打包提供下载就完美了
Andy市民
不错,很详细

海力布
发现两个小错误:spring-dubbo-consume.xml应该是spring-dubbo-consumer.xml,并且里面<dubbo:registry protocol="zookeeper" address="172.0.0.1:2181" client="zkclient" /> 地址应该是“127.0.0.1:2181”。
除此之外都挺好的。:+1::+1::+1::+1::+1:
java思维导图
有没git
慢慢成长
放码云上呀
kivenwei
[INFO ][2017-05-31 15:23:13,909] org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1041) - Opening socket connection to server /127.0.0.1:2181
[WARN ][2017-05-31 15:23:14,915] org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1161) - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused: no further information
  at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
  at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
  at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 请高手指点一下,我的防火墙已经关闭
×
王孟君
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额:
利发国际官方网