dubbo+zookeeper 的简单使用(不涉及集群)

版权声明:本文为博主原创文章,未经博主允许不得转载。否则,吔屎伺候。 https://blog.csdn.net/guowujun321/article/details/78816518

此文章不论述dubbo,zookeeper 的作用,相关问题请谷歌或百度,都有详细回答。

一、首先是使用的开发环境,插件版本等:

系统:windows7

开发工具:Eclipse-4.5.0,此版本支持JDK1.7。最新版本的Eclipse已不支持1.7

其他管理工具等:Maven-3.1.1,dubbo-2.5.8,zookeeper-3.4.9

二、搭建步骤:

1)下载 zookeeper 解压包,conf目录下有如下文件,打开zoo.cfg,里头有

(1)【tickTime】 基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的。


(2)【initLimit】当已经超过10个心跳的时间(也就是 tickTime)长度后 Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。


(3)【syncLimit】这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=4 秒。


(4)【dataDir】存放内存数据库快照的位置。


(5)【clientPort】client连接的端口号。



2)下载dubbo管理工具,可以从Github下载:https://github.com/alibaba/dubbo


将他解压,里头有dubbo-admin,我们需要进行打war包。




进入cmd,dubbo-admin 根目录,执行 mvn package -Dmaven.skip.test=true




当出现以下界面时,证明已经成功打好包(如果打不成功,可以下载我的 进入下载dubbo-admin.war包




可以发现,dubbo-admin根目录多出一个target文件,里头有个 dubbo-admin-2.5.8.war,将它拷出放到tomcat的webapps里,因为zookeeper默认使用的是8080,为避免冲突,tomcat的 conf\server.xml 文件,把启动端口改成8090(不会起冲突的端口都可以)。




紧接着运行tomcat,war包将自动解压,为避免覆盖。解压完毕时,停掉tomcat,把war包删掉,此时进入WEB-INF目录,dubbo.properties文件里配置信息:


dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest



回到zookeeper文件夹,找到bin目录下的zkServer,双击将它启动。启动完毕,再启动刚刚配置的tomcat。浏览器输入http://localhost:8090/dubbo-admin-2.5.8/,输入账号root,密码root。进入页面如下:




3)启动eclipse,既然使用到dubbo,那么我们来新建【消费者】,【提供者】以及中间接口jar。为何使用jar呢?项目之间统一代码版本是有利于维护的。



右键项目Export,选择JAR file  --> Next,一般放在桌面就行了,待会要用。如果是企业使用的话,应该都在使用Nexus搭建似有库存了。附参考链接http://www.jianshu.com/p/9740778b154f




4)提供者和消费者,网上例子比较多。dubbo官网也有,便不提供太多了。dubbo官网提供的是以multicast 为注册中心的,改为zookeeper 即可。

xml的配置改成:<dubbo:registry address="zookeeper://127.0.0.1:2181" />,可能dubbo:registry 会出现报红的情况(把她搞红了大哭)。解决办法:


在你下载的dubbo管理中心里,有个dubbo.xsd



将它拷到项目里也可以,eclipse-->Window-->Preferences-->XML-->XML Catalog里配置下dubbo.xsd,workspace选好本地dubbo.xsd路径。


配置好,刷新下项目,右键xml配置文件,选中Validate,应该就不红了。


如果dubbo.xsd 里 <xsd:element ref="beans:property" minOccurs="0" maxOccurs="unbounded"/> 这句报错,就先注释了吧,暂时没发现出什么问题。



其余的,应该没什么难题,有难题一个个处理,终会解决的。

以下maven里的spring,dubbo,zookeeper 等jar包版本:

<properties>
	<org.springframework.version>4.3.7.RELEASE</org.springframework.version>
  </properties> 
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>dubbo</artifactId>  
            <version>2.5.8</version>  
            <exclusions>  
                <exclusion>  
                    <artifactId>spring</artifactId>  
                    <groupId>org.springframework</groupId>  
                </exclusion>  
            </exclusions>  
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
            <version>3.6.10.Final</version>
        </dependency>   
        <dependency>
			<groupId>com.101tec</groupId>
		
			<artifactId>zkclient</artifactId>
			<version>0.10</version>
		</dependency>
      <dependency>  
         <groupId>org.apache.zookeeper</groupId>  
         <artifactId>zookeeper</artifactId>  
         <version>3.4.9</version>  
         <exclusions>  
            <exclusion>  
                <groupId>log4j</groupId>  
                <artifactId>log4j</artifactId>  
            </exclusion>  
         </exclusions>  
      </dependency>  
      <dependency>  
         <groupId>log4j</groupId>  
         <artifactId>log4j</artifactId>  
         <version>1.2.16</version>  
      </dependency>
      
      
      <!-- spring start -->  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-aop</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-aspects</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-beans</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context-support</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-core</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-expression</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-instrument</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-instrument-tomcat</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jdbc</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jms</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-messaging</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-orm</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-oxm</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-test</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-tx</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-web</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc-portlet</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-websocket</artifactId>  
        <version>${org.springframework.version}</version>  
    </dependency>  
    
    <!-- spring end --> 
  </dependencies>
  <build>
    <finalName>mavenTest</finalName>
    <plugins>  
    	<plugin>
		    <groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.3.2</version>
			<configuration>
			<source>1.7</source>
			<target>1.7</target>
			</configuration>
		</plugin>
    </plugins>
  </build>


猜你喜欢

转载自blog.csdn.net/guowujun321/article/details/78816518