设为首页 收藏本站
查看: 695|回复: 0

[经验分享] Dubbo+Zookeeper 项目搭建

[复制链接]

尚未签到

发表于 2017-4-19 09:55:38 | 显示全部楼层 |阅读模式
Dubbo是什么:

     分布式服务框架
     --高性能和透明化的RPC远程服务调用方案
     --SOA服务治理方案

Dubbo解决问题:

     透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
     软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器。
     服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

Maven工程搭建:

pom文件见附件pom.zip

项目工程结构:


DSC0000.png


DSC0001.png


applicationContext_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">
  
    <!-- ************************************************************************ -->
<!-- 将多个配置文件位置放到列表中 -->  

    <bean id="propertyResources" class="java.util.ArrayList">  
        <constructor-arg>  
            <list>  
           <value>classpath:/config.properties</value>
            </list>  
        </constructor-arg>  
    </bean>  
      
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations" ref="propertyResources" />  
    </bean>
  
   <!-- ************************************************************************ -->
  
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo-service-provider" />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <!--
    <dubbo:registry address="multicast://224.5.6.7:1234" />
    <dubbo:protocol name="dubbo" port="10880" />
    -->   

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

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

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="cn.ias.agdis.techtest.dubbo.provider.service.UserService"
        ref="userService" version="1.0.0" protocol="dubbo,hessian"/>

    <!-- 和本地bean一样实现服务 -->
    <bean id="userService" class="cn.ias.agdis.techtest.dubbo.provider.service.impl.UserServiceImpl">
        <property name="dao" ref="userDao"/>
    </bean>
  
     
    <!-- dao bean -->
    <bean id="userDao" class="cn.ias.agdis.techtest.dubbo.provider.dao.impl.UserDaoImpl" />
  
</beans>


applicationContext_dubbo-consumer.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">

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

<dubbo:consumer check = "false"/>

<!-- 使用multicast广播注册中心暴露服务地址 -->
    <!--
    <dubbo:registry address="multicast://224.5.6.7:1234" />
    <dubbo:protocol name="dubbo" port="10880" />
    -->

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

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:reference id="userServiceRPC" interface="cn.ias.agdis.techtest.dubbo.provider.service.UserService"
     version="1.0.0" registry="techtestRegistry"/>


</beans>


web.xml

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<!-- location of spring xml files -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/applicationContext_dubbo-provider.xml,classpath:/applicationContext-webservice-producer.xml</param-value>
</context-param>
   
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- CXF servlet -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- all our webservices are mapped under this URI pattern -->
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservices/*</url-pattern>
</servlet-mapping>

</web-app>


工程源码:

源码文件见附件 mytechtest.zip

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366216-1-1.html 上篇帖子: zookeeper 启动错误问题 下篇帖子: RHEL5.5+Zookeeper集群模式安装笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表