实践整理 spring+dubbo+zookeeper

基础架构设计大概图:

 

第一步: 先下载zookpper框架 下载地址:  

http://mirrors.hust.edu.cn/apache/zookeeper/

第二步: 配置zookeeper

 新建文件夹命名zookeeper1, 在zookeeper1下面新建data文件夹

 

 data下新建myid文件内容为: 158531

第三步:配置zookeeper-3.4.10下conf目录下的zoo.cfg

# 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=/witts/distributed-service/zookeeper1/data
# 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
server.158531=127.0.0.1:2181:7771

第四步:启动zookeeper服务

cd bin ./zkServer.sh start  | stop

第五步:新建java项目 zookeeper-producer-data(生产者)

 

spring.xml配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="  
    http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd  
    http://code.alibabatech.com/schema/dubbo    
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">


    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="zookeeper-producer-data"/> 
    <!-- 使用multicast广播注册中心暴露服务地址 <dubbo:registry address="multicast://224.5.6.7:1234"  /> -->

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880"/>

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.zeelan.dubbo.provider.DemoServer" ref="demoServer"/> 
     <!-- 具体的实现bean -->
    <bean id="demoServer" class="com.zeelan.dubbo.provider.impl.DemoServerImpl"/> 
</beans>
          
package com.zeelan.dubbo; 
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class StartServer {
    
    private static ClassPathXmlApplicationContext context=null;

    public static void main(String[] args) throws Exception {
        context = new ClassPathXmlApplicationContext(new String[] { "classpath:spring.xml" });
        context.start();
        System.in.read();
    }
}

然后StartServer运行main函数加载注册信息启动项目

启动信息如下:

2018-02-02 11:37:21,866 INFO [org.springframework.context.support.ClassPathXmlApplicationContext] - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5ebec15: startup date [Fri Feb 02 11:37:21 CST 2018]; root of context hierarchy
2018-02-02 11:37:21,893 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [spring.xml]
2018-02-02 11:37:22,011 INFO [com.alibaba.dubbo.common.logger.LoggerFactory] - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter
2018-02-02 11:37:22,243 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] The service ready on spring started. service: com.zeelan.dubbo.provider.DemoServer, dubbo version: 2.5.3, current host: 127.0.0.1
2018-02-02 11:37:22,324 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] Export dubbo service com.zeelan.dubbo.provider.DemoServer to local registry, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,324 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] Export dubbo service com.zeelan.dubbo.provider.DemoServer to url dubbo://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,324 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] Register dubbo service com.zeelan.dubbo.provider.DemoServer url dubbo://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259 to registry registry://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=zookeeper-producer-data&dubbo=2.5.3&pid=4054&registry=zookeeper&timestamp=1517542642249, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,468 INFO [com.alibaba.dubbo.remoting.transport.AbstractServer] -  [DUBBO] Start NettyServer bind /0.0.0.0:20880, export /192.168.0.122:20880, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,482 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Load registry store file /home/witts/.dubbo/dubbo-registry-127.0.0.1.cache, data: {com.zeelan.dubbo.provider.DemoServer=override://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?category=configurators&dynamic=false&enabled=true&weight=1 empty://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=routers&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=2489&side=consumer&timestamp=1517477039387 empty://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=providers&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=2489&side=consumer&timestamp=1517477039387}, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,491 INFO [org.I0Itec.zkclient.ZkEventThread] - Starting ZkClient event thread.
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:zookeeper.version=3.3.1-942149, built on 05/07/2010 17:14 GMT
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:host.name=witts
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.version=1.8.0_144
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.vendor=Oracle Corporation
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.home=/usr/lib/jvm/java-8-oracle/jre
2018-02-02 11:37:22,495 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.class.path=/witts/distributed-service/test-service/target/classes:/witts/work/maven_source/lib/junit/junit/4.12/junit-4.12.jar:/witts/work/maven_source/lib/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/witts/work/maven_source/lib/cc/zeelan/framework/rpc/rpc/0.0.1-SNAPSHOT/rpc-0.0.1-SNAPSHOT.jar:/witts/work/maven_source/lib/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:/witts/work/maven_source/lib/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar:/witts/work/maven_source/lib/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar:/witts/work/maven_source/lib/io/netty/netty-all/4.1.6.Final/netty-all-4.1.6.Final.jar:/witts/work/maven_source/lib/com/caucho/hessian/4.0.38/hessian-4.0.38.jar:/witts/work/maven_source/lib/com/google/guava/guava/20.0/guava-20.0.jar:/witts/work/maven_source/lib/org/springframework/spring-context/4.3.4.RELEASE/spring-context-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-expression/4.3.4.RELEASE/spring-expression-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-core/4.3.4.RELEASE/spring-core-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/witts/work/maven_source/lib/org/springframework/spring-beans/4.3.4.RELEASE/spring-beans-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-aop/4.3.4.RELEASE/spring-aop-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-context-support/4.3.4.RELEASE/spring-context-support-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-aspects/4.3.4.RELEASE/spring-aspects-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/aspectj/aspectjweaver/1.8.9/aspectjweaver-1.8.9.jar:/witts/work/maven_source/lib/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/witts/work/maven_source/lib/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar:/witts/work/maven_source/lib/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/witts/work/maven_source/lib/com/esotericsoftware/kryo/4.0.0/kryo-4.0.0.jar:/witts/work/maven_source/lib/com/esotericsoftware/reflectasm/1.11.3/reflectasm-1.11.3.jar:/witts/work/maven_source/lib/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/witts/work/maven_source/lib/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar:/witts/work/maven_source/lib/org/objenesis/objenesis/2.2/objenesis-2.2.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-core/1.5.3/protostuff-core-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-api/1.5.3/protostuff-api-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-runtime/1.5.3/protostuff-runtime-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-collectionschema/1.5.3/protostuff-collectionschema-1.5.3.jar:/witts/work/maven_source/lib/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar:/witts/work/maven_source/lib/org/apache/curator/curator-x-discovery-server/2.9.1/curator-x-discovery-server-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-x-discovery/2.9.1/curator-x-discovery-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-recipes/2.9.1/curator-recipes-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-framework/2.9.1/curator-framework-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-client/2.9.1/curator-client-2.9.1.jar:/witts/work/maven_source/lib/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/witts/work/maven_source/lib/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/witts/work/maven_source/lib/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/witts/work/maven_source/lib/cc/zeelan/framework/security/security/0.0.1-SNAPSHOT/security-0.0.1-SNAPSHOT.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-databind/2.8.5/jackson-databind-2.8.5.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-core/2.8.5/jackson-core-2.8.5.jar:/witts/work/maven_source/lib/org/springframework/spring-web/4.3.4.RELEASE/spring-web-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-webmvc/4.3.4.RELEASE/spring-webmvc-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/witts/work/maven_source/lib/org/springframework/spring-test/4.3.4.RELEASE/spring-test-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-tx/4.3.4.RELEASE/spring-tx-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-jdbc/4.3.4.RELEASE/spring-jdbc-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/net/sf/ehcache/ehcache/2.10.3/ehcache-2.10.3.jar:/witts/work/maven_source/lib/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar:/witts/work/maven_source/lib/com/dianping/cat/cat-core/1.4.0/cat-core-1.4.0.jar:/witts/work/maven_source/lib/com/dianping/cat/cat-client/1.4.0/cat-client-1.4.0.jar:/witts/work/maven_source/lib/org/unidal/framework/foundation-service/2.5.0/foundation-service-2.5.0.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-container-default/1.6/plexus-container-default-1.6.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.jar:/witts/work/maven_source/lib/org/apache/xbean/xbean-reflect/3.7/xbean-reflect-3.7.jar:/witts/work/maven_source/lib/org/unidal/framework/web-framework/2.5.0/web-framework-2.5.0.jar:/witts/work/maven_source/lib/commons-fileupload/commons-fileupload/1.3.2/commons-fileupload-1.3.2.jar:/witts/work/maven_source/lib/commons-io/commons-io/2.2/commons-io-2.2.jar:/witts/work/maven_source/lib/org/unidal/framework/dal-jdbc/2.5.0/dal-jdbc-2.5.0.jar:/witts/work/maven_source/lib/com/mchange/c3p0/0.9.5.2/c3p0-0.9.5.2.jar:/witts/work/maven_source/lib/com/mchange/mchange-commons-java/0.2.11/mchange-commons-java-0.2.11.jar:/witts/work/maven_source/lib/org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar:/witts/work/maven_source/lib/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar:/witts/work/maven_source/lib/com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar:/witts/work/maven_source/lib/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/witts/work/maven_source/lib/org/glassfish/web/javax.el/2.2.4/javax.el-2.2.4.jar:/witts/work/maven_source/lib/javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar:/witts/work/maven_source/lib/com/alibaba/druid/1.0.1/druid-1.0.1.jar:/witts/work/maven_source/lib/org/mybatis/mybatis/3.4.2.1/mybatis-3.4.2.1.jar:/witts/work/maven_source/lib/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1.jar:/witts/work/maven_source/lib/com/github/miemiedev/mybatis-paginator/1.2.17.2/mybatis-paginator-1.2.17.2.jar:/witts/work/maven_source/lib/mysql/mysql-connector-java/5.1.24/mysql-connector-java-5.1.24.jar:/witts/work/maven_source/lib/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/witts/work/maven_source/lib/org/aspectj/aspectjrt/1.7.3/aspectjrt-1.7.3.jar:/witts/work/maven_source/lib/com/github/abel533/mapper/3.0.0/mapper-3.0.0.jar:/witts/work/maven_source/lib/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar:/witts/work/maven_source/lib/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar:/witts/work/maven_source/lib/com/github/abel533/entitymapper/1.0.0/entitymapper-1.0.0.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar:/witts/work/maven_source/lib/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/witts/work/maven_source/lib/net/sf/ehcache/ehcache-core/2.6.11/ehcache-core-2.6.11.jar:/witts/work/maven_source/lib/org/mybatis/caches/mybatis-ehcache/1.1.0/mybatis-ehcache-1.1.0.jar:/witts/work/maven_source/lib/org/luanlouis/mybatis/plugin/cache/enhanced-cache-0.0.1/0.0.1/enhanced-cache-0.0.1-0.0.1.jar:/witts/work/maven_source/lib/com/atomikos/atomikos-util/4.0.4/atomikos-util-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions/4.0.4/transactions-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-api/4.0.4/transactions-api-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-jdbc/4.0.4/transactions-jdbc-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-jta/4.0.4/transactions-jta-4.0.4.jar:/witts/work/maven_source/lib/javax/transaction/jta/1.1/jta-1.1.jar:/witts/work/maven_source/lib/com/alibaba/dubbo/2.5.3/dubbo-2.5.3.jar:/witts/work/maven_source/lib/org/javassist/javassist/3.15.0-GA/javassist-3.15.0-GA.jar:/witts/work/maven_source/lib/org/jboss/netty/netty/3.2.5.Final/netty-3.2.5.Final.jar:/witts/work/maven_source/lib/com/101tec/zkclient/0.4/zkclient-0.4.jar:/witts/work/maven_source/lib/org/apache/zookeeper/zookeeper/3.3.1/zookeeper-3.3.1.jar:/witts/work/maven_source/lib/jline/jline/0.9.94/jline-0.9.94.jar:/witts/work/maven_source/lib/log4j/log4j/1.2.14/log4j-1.2.14.jar
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.io.tmpdir=/tmp
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.compiler=<NA>
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.name=Linux
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.arch=amd64
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.version=4.9.0-5-amd64
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.name=witts
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.home=/home/witts
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.dir=/witts/distributed-service/test-service
2018-02-02 11:37:22,496 INFO [org.apache.zookeeper.ZooKeeper] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@53aac487
2018-02-02 11:37:22,503 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server /127.0.0.1:2181
2018-02-02 11:37:22,506 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2018-02-02 11:37:22,523 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x16154968fb10001, negotiated timeout = 30000
2018-02-02 11:37:22,524 INFO [org.I0Itec.zkclient.ZkClient] - zookeeper state changed (SyncConnected)
2018-02-02 11:37:22,525 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Register: dubbo://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,579 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Subscribe: provider://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&category=configurators&check=false&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:37:22,636 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Notify urls for subscribe url provider://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&category=configurators&check=false&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259, urls: [override://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?category=configurators&dynamic=false&enabled=true&weight=1], dubbo version: 2.5.3, current host: 192.168.0.122

第六步:新建java项目zookeeper-consumer-restful(消费者)

spring.xml配置文件内容如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="  
    http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd  
    http://code.alibabatech.com/schema/dubbo    
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 自动扫描(自动注入) -->
    <context:component-scan base-package="com.zeelan" />
    <!-- consumer application name -->
    <dubbo:application name="zookeeper-consumer-restful" />
    <!-- registry address, used for consumer to discover services -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    
    <dubbo:consumer timeout="5000" /> 
    <!-- which service to consume? -->
    <dubbo:reference id="demoService"  interface="com.zeelan.dubbo.provider.DemoServer" /> 
</beans>  

 调用信息如下:

package com.zeelan.dubbo;

import java.util.List; 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zeelan.dubbo.entity.User;
import com.zeelan.dubbo.provider.DemoServer;

public class TestServer {

    public static void main(String[] args) throws Exception {

        @SuppressWarnings("resource")
        ApplicationContext  context = new ClassPathXmlApplicationContext(new String[] { "spring.xml" }); 
        DemoServer demoService = (DemoServer) context.getBean("demoService");
        String hello = "";
        try {
            hello = demoService.sayHello("dubbo");
            System.out.println(hello);
            List<User> list = demoService.getUsers();
            System.out.println("一共有" + list.size() + "个用户!");
        } catch (Exception e) { 
            e.printStackTrace();
        } 
        System.out.println(Thread.currentThread().getName() + ">>>>>>>>>>>  " + hello);
        System.in.read();
    }

}

调用远程信息如下:

2018-02-02 11:39:05,123 INFO [org.springframework.context.support.ClassPathXmlApplicationContext] - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5ebec15: startup date [Fri Feb 02 11:39:05 CST 2018]; root of context hierarchy
2018-02-02 11:39:05,149 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [spring.xml]
2018-02-02 11:39:05,297 INFO [com.alibaba.dubbo.common.logger.LoggerFactory] - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter
2018-02-02 11:39:05,588 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Load registry store file /home/witts/.dubbo/dubbo-registry-127.0.0.1.cache, data: {com.zeelan.dubbo.provider.DemoServer=override://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?category=configurators&dynamic=false&enabled=true&weight=1}, dubbo version: 2.5.3, current host: 127.0.0.1
2018-02-02 11:39:05,597 INFO [org.I0Itec.zkclient.ZkEventThread] - Starting ZkClient event thread.
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:zookeeper.version=3.3.1-942149, built on 05/07/2010 17:14 GMT
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:host.name=witts
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.version=1.8.0_144
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.vendor=Oracle Corporation
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.home=/usr/lib/jvm/java-8-oracle/jre
2018-02-02 11:39:05,601 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.class.path=/witts/work/zookeeper-consumer-restful/target/classes:/witts/work/maven_source/lib/junit/junit/4.12/junit-4.12.jar:/witts/work/maven_source/lib/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/witts/work/maven_source/lib/cc/zeelan/framework/rpc/rpc/0.0.1-SNAPSHOT/rpc-0.0.1-SNAPSHOT.jar:/witts/work/maven_source/lib/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:/witts/work/maven_source/lib/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar:/witts/work/maven_source/lib/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar:/witts/work/maven_source/lib/io/netty/netty-all/4.1.6.Final/netty-all-4.1.6.Final.jar:/witts/work/maven_source/lib/com/caucho/hessian/4.0.38/hessian-4.0.38.jar:/witts/work/maven_source/lib/com/google/guava/guava/20.0/guava-20.0.jar:/witts/work/maven_source/lib/org/springframework/spring-context/4.3.4.RELEASE/spring-context-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-expression/4.3.4.RELEASE/spring-expression-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-core/4.3.4.RELEASE/spring-core-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/witts/work/maven_source/lib/org/springframework/spring-beans/4.3.4.RELEASE/spring-beans-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-aop/4.3.4.RELEASE/spring-aop-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-context-support/4.3.4.RELEASE/spring-context-support-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-aspects/4.3.4.RELEASE/spring-aspects-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/aspectj/aspectjweaver/1.8.9/aspectjweaver-1.8.9.jar:/witts/work/maven_source/lib/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/witts/work/maven_source/lib/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar:/witts/work/maven_source/lib/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/witts/work/maven_source/lib/com/esotericsoftware/kryo/4.0.0/kryo-4.0.0.jar:/witts/work/maven_source/lib/com/esotericsoftware/reflectasm/1.11.3/reflectasm-1.11.3.jar:/witts/work/maven_source/lib/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/witts/work/maven_source/lib/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar:/witts/work/maven_source/lib/org/objenesis/objenesis/2.2/objenesis-2.2.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-core/1.5.3/protostuff-core-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-api/1.5.3/protostuff-api-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-runtime/1.5.3/protostuff-runtime-1.5.3.jar:/witts/work/maven_source/lib/io/protostuff/protostuff-collectionschema/1.5.3/protostuff-collectionschema-1.5.3.jar:/witts/work/maven_source/lib/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar:/witts/work/maven_source/lib/org/apache/curator/curator-x-discovery-server/2.9.1/curator-x-discovery-server-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-x-discovery/2.9.1/curator-x-discovery-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-recipes/2.9.1/curator-recipes-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-framework/2.9.1/curator-framework-2.9.1.jar:/witts/work/maven_source/lib/org/apache/curator/curator-client/2.9.1/curator-client-2.9.1.jar:/witts/work/maven_source/lib/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/witts/work/maven_source/lib/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/witts/work/maven_source/lib/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/witts/work/maven_source/lib/cc/zeelan/framework/security/security/0.0.1-SNAPSHOT/security-0.0.1-SNAPSHOT.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-databind/2.8.5/jackson-databind-2.8.5.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar:/witts/work/maven_source/lib/com/fasterxml/jackson/core/jackson-core/2.8.5/jackson-core-2.8.5.jar:/witts/work/maven_source/lib/org/springframework/spring-web/4.3.4.RELEASE/spring-web-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-webmvc/4.3.4.RELEASE/spring-webmvc-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/witts/work/maven_source/lib/org/springframework/spring-test/4.3.4.RELEASE/spring-test-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-tx/4.3.4.RELEASE/spring-tx-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/org/springframework/spring-jdbc/4.3.4.RELEASE/spring-jdbc-4.3.4.RELEASE.jar:/witts/work/maven_source/lib/net/sf/ehcache/ehcache/2.10.3/ehcache-2.10.3.jar:/witts/work/maven_source/lib/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar:/witts/work/maven_source/lib/com/dianping/cat/cat-core/1.4.0/cat-core-1.4.0.jar:/witts/work/maven_source/lib/com/dianping/cat/cat-client/1.4.0/cat-client-1.4.0.jar:/witts/work/maven_source/lib/org/unidal/framework/foundation-service/2.5.0/foundation-service-2.5.0.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-container-default/1.6/plexus-container-default-1.6.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.jar:/witts/work/maven_source/lib/org/apache/xbean/xbean-reflect/3.7/xbean-reflect-3.7.jar:/witts/work/maven_source/lib/org/unidal/framework/web-framework/2.5.0/web-framework-2.5.0.jar:/witts/work/maven_source/lib/commons-fileupload/commons-fileupload/1.3.2/commons-fileupload-1.3.2.jar:/witts/work/maven_source/lib/commons-io/commons-io/2.2/commons-io-2.2.jar:/witts/work/maven_source/lib/org/unidal/framework/dal-jdbc/2.5.0/dal-jdbc-2.5.0.jar:/witts/work/maven_source/lib/com/mchange/c3p0/0.9.5.2/c3p0-0.9.5.2.jar:/witts/work/maven_source/lib/com/mchange/mchange-commons-java/0.2.11/mchange-commons-java-0.2.11.jar:/witts/work/maven_source/lib/org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar:/witts/work/maven_source/lib/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar:/witts/work/maven_source/lib/com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar:/witts/work/maven_source/lib/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/witts/work/maven_source/lib/org/glassfish/web/javax.el/2.2.4/javax.el-2.2.4.jar:/witts/work/maven_source/lib/javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar:/witts/work/maven_source/lib/com/alibaba/druid/1.0.1/druid-1.0.1.jar:/witts/work/maven_source/lib/org/mybatis/mybatis/3.4.2.1/mybatis-3.4.2.1.jar:/witts/work/maven_source/lib/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1.jar:/witts/work/maven_source/lib/com/github/miemiedev/mybatis-paginator/1.2.17.2/mybatis-paginator-1.2.17.2.jar:/witts/work/maven_source/lib/mysql/mysql-connector-java/5.1.24/mysql-connector-java-5.1.24.jar:/witts/work/maven_source/lib/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/witts/work/maven_source/lib/org/aspectj/aspectjrt/1.7.3/aspectjrt-1.7.3.jar:/witts/work/maven_source/lib/com/github/abel533/mapper/3.0.0/mapper-3.0.0.jar:/witts/work/maven_source/lib/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar:/witts/work/maven_source/lib/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar:/witts/work/maven_source/lib/com/github/abel533/entitymapper/1.0.0/entitymapper-1.0.0.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar:/witts/work/maven_source/lib/org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar:/witts/work/maven_source/lib/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/witts/work/maven_source/lib/net/sf/ehcache/ehcache-core/2.6.11/ehcache-core-2.6.11.jar:/witts/work/maven_source/lib/org/mybatis/caches/mybatis-ehcache/1.1.0/mybatis-ehcache-1.1.0.jar:/witts/work/maven_source/lib/org/luanlouis/mybatis/plugin/cache/enhanced-cache-0.0.1/0.0.1/enhanced-cache-0.0.1-0.0.1.jar:/witts/work/maven_source/lib/com/atomikos/atomikos-util/4.0.4/atomikos-util-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions/4.0.4/transactions-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-api/4.0.4/transactions-api-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-jdbc/4.0.4/transactions-jdbc-4.0.4.jar:/witts/work/maven_source/lib/com/atomikos/transactions-jta/4.0.4/transactions-jta-4.0.4.jar:/witts/work/maven_source/lib/javax/transaction/jta/1.1/jta-1.1.jar:/witts/work/maven_source/lib/com/alibaba/dubbo/2.5.3/dubbo-2.5.3.jar:/witts/work/maven_source/lib/org/javassist/javassist/3.15.0-GA/javassist-3.15.0-GA.jar:/witts/work/maven_source/lib/org/jboss/netty/netty/3.2.5.Final/netty-3.2.5.Final.jar:/witts/work/maven_source/lib/com/101tec/zkclient/0.4/zkclient-0.4.jar:/witts/work/maven_source/lib/org/apache/zookeeper/zookeeper/3.3.1/zookeeper-3.3.1.jar:/witts/work/maven_source/lib/jline/jline/0.9.94/jline-0.9.94.jar:/witts/work/maven_source/lib/log4j/log4j/1.2.14/log4j-1.2.14.jar
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.io.tmpdir=/tmp
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.compiler=<NA>
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.name=Linux
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.arch=amd64
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.version=4.9.0-5-amd64
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.name=witts
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.home=/home/witts
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.dir=/witts/work/zookeeper-consumer-restful
2018-02-02 11:39:05,602 INFO [org.apache.zookeeper.ZooKeeper] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@41fecb8b
2018-02-02 11:39:05,610 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server /127.0.0.1:2181
2018-02-02 11:39:05,614 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2018-02-02 11:39:05,630 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x16154968fb10002, negotiated timeout = 30000
2018-02-02 11:39:05,634 INFO [org.I0Itec.zkclient.ZkClient] - zookeeper state changed (SyncConnected)
2018-02-02 11:39:05,698 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Register: consumer://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=consumers&check=false&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4467&side=consumer&timestamp=1517542745542, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:39:05,750 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Subscribe: consumer://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=providers,configurators,routers&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4467&side=consumer&timestamp=1517542745542, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:39:05,877 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] -  [DUBBO] Notify urls for subscribe url consumer://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=providers,configurators,routers&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4467&side=consumer&timestamp=1517542745542, urls: [dubbo://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?anyhost=true&application=zookeeper-producer-data&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4054&side=provider&timestamp=1517542642259, override://192.168.0.122:20880/com.zeelan.dubbo.provider.DemoServer?category=configurators&dynamic=false&enabled=true&weight=1, empty://192.168.0.122/com.zeelan.dubbo.provider.DemoServer?application=zookeeper-consumer-restful&category=routers&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4467&side=consumer&timestamp=1517542745542], dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:39:06,075 INFO [com.alibaba.dubbo.remoting.transport.AbstractClient] -  [DUBBO] Successed connect to server /192.168.0.122:20880 from NettyClient 192.168.0.122 using dubbo version 2.5.3, channel is NettyChannel [channel=[id: 0x71075444, /192.168.0.122:55032 => /192.168.0.122:20880]], dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:39:06,075 INFO [com.alibaba.dubbo.remoting.transport.AbstractClient] -  [DUBBO] Start NettyClient /192.168.0.122 connect to the server /192.168.0.122:20880, dubbo version: 2.5.3, current host: 192.168.0.122
2018-02-02 11:39:06,145 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] Refer dubbo service com.zeelan.dubbo.provider.DemoServer from url zookeeper://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=zookeeper-consumer-restful&check=false&default.timeout=5000&dubbo=2.5.3&interface=com.zeelan.dubbo.provider.DemoServer&methods=sayHello,getUsers&pid=4467&side=consumer&timestamp=1517542745542&weight=1, dubbo version: 2.5.3, current host: 192.168.0.122
hello my firends
一共有3个用户!
main>>>>>>>>>>>  hello my firends

 第七步:利用dubbo admin后台管理系统查看维护注册信息

http://192.168.0.122:8080/governance/services

 

原文地址:https://www.cnblogs.com/light-zhang/p/8404385.html