Dubbo+zookeeper使用方法以及注意事项

Dubbo+zookeeper使用方法以及注意事项

最近在一个项目中想做一个数据库查询的服务,目的是将数据库查询这块从程序中脱离出来,形成一个公共的服务平台,大家都可以调用,经过考虑决定选用Dubbo+zookeeper这个经典的组合来实现,以下记录我事件中遇上的问题,希望大家可以借鉴,同时对自己也是一种备忘吧!

1、对应的包下载:

基本就是Spring的包+zookeeper的包+dubbo的包

生产部分配置如下


<?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
         ">
     <!-- 提供方应用信息,用于计算依赖关系 -->
     <dubbo:application name="DBService_provider" />
     <!-- 使用zookeeper注册中心暴露服务地址 -->
     <dubbo:registry address="zookeeper://192.168.0.107:2181" />

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

    <!-- 声明需要暴露的服务接口 -->
     <dubbo:service interface="com.moorgen.service.IBaseDaoService"   
         ref="IBaseDaoService" loadbalance="roundrobin" />
     <!-- 具体的实现bean -->
     <bean id="IBaseDaoService" class="com.moorgen.service.impl.BaseDaoServiceImpl" />
        
</beans>


注意事项: 

<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20881" /> 一个zookeeper要想注册多个服务,改变port即可

消费者对应的配置:


<?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 
         ">

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
     <dubbo:application name="DB_consumer" />

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

    <dubbo:reference id="iBaseDaoService" interface="com.moorgen.service.IBaseDaoService"  timeout="2000" check="false" />

</beans>

注意:其中接口中对应的参数如果是类的话必须对应;如:IBaseDaoService.SelectByParam(URD urd); 其中两边的URD类的位置必须一样;

原文地址:https://www.cnblogs.com/lichunyang321/p/7115145.html