天下之事,必先处之难,而后易之。

DUBBO服务管理配置Zookeeper集群服务

Dubbo如何使用请参考我之前的文章:DUBBO分布式服务框架与SpringMVC+Zookeeper实现服务提供和消费

本文就之前的内容继续深入研究,并整理出更详细的文档:http://pan.baidu.com/s/1kUMx3in

Dubbo与Zookeeper集群架构

Tomcat注册服务到Zookeeper集群,由Dubbo进行统一管理。

Dubbo配置Zookeeper

修改dubbo/WEB-INF/dubbo.properties文件:

dubbo.registry.address=zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183

dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

 配置Provider-Customer节点

 Node1

    Provider applicationContext.xml

<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">

 

    <!-- 提供方应用信息,用于计算依赖关系 -->

    <dubbo:applicationname="webapp-api-provider" />

 

    <!-- 使用zookeeper注册中心暴露服务地址 -->

    <!--<dubbo:registryaddress="zookeeper://192.168.200.122:2181?" />-->

   

    <!-- zookeeper注册中心暴露服务集群配置 -->

    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

   

    <!-- 用dubbo协议在20881端口暴露服务(如果有多个提供者,则端口号不能重复) -->

    <dubbo:protocol name="dubbo"port="20881" />

 

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.UserService"ref="userService" />

    <!-- 和本地bean一样实现服务 -->

    <bean id="userService"class="com.boonya.dubbo.provider.UserServiceProvider"/>

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.ProductService"ref="productService" />

     <!-- 和本地bean一样实现服务 -->

    <bean id="productService"class="com.boonya.dubbo.provider.ProductServiceProvider"/>

 

</beans>

Customer applicationContext.xml

 

<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">


    <!-- 消费方应用信息,用于计算依赖关系 -->
    <dubbo:applicationname="webapp-api-customer" />

 

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

    <!-- zookeeper注册中心暴露服务集群配置 -->
    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

    <!-- 生成远程服务代理,可以和本地bean一样使用userService -->

    <dubbo:referenceid="userService"interface="dubbo.web.api.service.UserService" />

    <dubbo:referenceid="productService"interface="dubbo.web.api.service.ProductService" />


</beans>


 Node2
   Provider applicationContext.xml
<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">

 

    <!-- 提供方应用信息,用于计算依赖关系 -->

    <dubbo:applicationname="webapp-api-provider" />

 

    <!-- 使用zookeeper注册中心暴露服务地址 -->

    <!--<dubbo:registryaddress="zookeeper://192.168.200.122:2181?" />-->

   

    <!-- zookeeper注册中心暴露服务集群配置 -->

    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

   

    <!-- 用dubbo协议在20881端口暴露服务(如果有多个提供者,则端口号不能重复) -->

    <dubbo:protocol name="dubbo"port="20882" />

 

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.UserService"ref="userService" />

    <!-- 和本地bean一样实现服务 -->

    <bean id="userService"class="com.boonya.dubbo.provider.UserServiceProvider"/>

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.ProductService"ref="productService" />

     <!-- 和本地bean一样实现服务 -->

    <bean id="productService"class="com.boonya.dubbo.provider.ProductServiceProvider"/>

 

</beans>

Customer applicationContext.xml

 

<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">


    <!-- 消费方应用信息,用于计算依赖关系 -->
    <dubbo:applicationname="webapp-api-customer" />

 

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

    <!-- zookeeper注册中心暴露服务集群配置 -->
    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

    <!-- 生成远程服务代理,可以和本地bean一样使用userService -->

    <dubbo:referenceid="userService"interface="dubbo.web.api.service.UserService" />

    <dubbo:referenceid="productService"interface="dubbo.web.api.service.ProductService" />


</beans>

 Node3
   Provider applicationContext.xml
<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">

 

    <!-- 提供方应用信息,用于计算依赖关系 -->

    <dubbo:applicationname="webapp-api-provider" />

 

    <!-- 使用zookeeper注册中心暴露服务地址 -->

    <!--<dubbo:registryaddress="zookeeper://192.168.200.122:2181?" />-->

   

    <!-- zookeeper注册中心暴露服务集群配置 -->

    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

   

    <!-- 用dubbo协议在20881端口暴露服务(如果有多个提供者,则端口号不能重复) -->

    <dubbo:protocol name="dubbo"port="20883" />

 

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.UserService"ref="userService" />

    <!-- 和本地bean一样实现服务 -->

    <bean id="userService"class="com.boonya.dubbo.provider.UserServiceProvider"/>

    <!-- 声明需要暴露的服务接口(interface是全路径名,不能自定义) -->

    <dubbo:serviceinterface="dubbo.web.api.service.ProductService"ref="productService" />

     <!-- 和本地bean一样实现服务 -->

    <bean id="productService"class="com.boonya.dubbo.provider.ProductServiceProvider"/>

 

</beans>

Customer applicationContext.xml

 

<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="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">


    <!-- 消费方应用信息,用于计算依赖关系 -->
    <dubbo:applicationname="webapp-api-customer" />

 

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

    <!-- zookeeper注册中心暴露服务集群配置 -->
    <dubbo:registryaddress="zookeeper://192.168.200.122:2181?backup=192.168.200.122:2182,192.168.200.122:2183"/>

    <!-- 生成远程服务代理,可以和本地bean一样使用userService -->

    <dubbo:referenceid="userService"interface="dubbo.web.api.service.UserService" />

    <dubbo:referenceid="productService"interface="dubbo.web.api.service.ProductService" />


</beans>

 测试节点

 API Services

Providers

  Customers

注:一旦有接口访问就可以看到消费者,这里的“应用名”可以根据Tomcat对应的端口设置来加以区分。

Dubbo+Zookeeper架构应用框架

官网地址:http://minglisoft.cn/technology/index.htm

360图书馆介绍:http://www.360doc.com/content/17/0511/15/36031295_652993734.shtml

最新示例代码下载

Github: https://github.com/SunflowersOfJava/dubbo-zookeeper-spring.git

posted @ 2024-10-19 14:57  boonya  阅读(108)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。