dubbo协议实现与webservice一样的效果,用于服务调用之间的接口。dubbo可在中间实现真正意义上的中间调用管理,是一个中间管理系统。

demo:http://www.devnote.cn/download/182

同步服务端集成

同步服务端统一试用dubbo服务端集成到业务系统。目前的场景试用的是dubbo协议。

1、加入dubbo jar包(附件2.4.10-jar.zip)

2、在spring配置文件中加入dubbo provider配置

<?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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/aop
              http://www.springframework.org/schema/aop/spring-aop-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="dubbo-app" />
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://IP:PORT"
        check="false" />
    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.dubbo.provider.service.DubboService"
        ref="dubboService" protocol="dubbo" retries="0" timeout="100000" />
    <!-- 和本地bean一样实现服务 -->
    <bean id="dubboService" class="com.dubbo.provider.service.impl.DubboServiceImpl" />
</beans>

<dubbo:application/> :应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
  <dubbo:service/> :服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注   册到多个注册中心。
  <dubbo:protocol/> :协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
  <dubbo:registry/> :注册中心配置,用于配置连接注册中心相关信息。

3、把相应的外部接口和所用到的bean(bean或bean的基类要实例化)打成一个jar包


同步客户端集成

1、客户端也许加入相应的dubbojar(2.4.10-jar.zip)

2、加入dubbo client配置

<?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-custom-app" />
    <!-- 使用zookeeper注册中心暴露发现服务地址 -->
    <dubbo:registry address="zookeeper://IP:PORT"
        check="false" />
    <dubbo:monitor protocol="registry" />
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- 生成远程服务代理,可以和本地bean一样使用dubboService -->
    <dubbo:reference id="dubboService"
        interface="com.dubbo.provider.service.DubboService" protocol="dubbo"
        retries="0" timeout="10000" check="false">
        <!--<dubbo:method name="insertOrUpdateCustomer" async="true" /> -->
    </dubbo:reference>
</beans>

<dubbo:reference/>  引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。

3、引入服务方提供的接口和bean打的jar包


服务方实现读写分离

若服务方要实现读写分离,可参考如下方案:

服务端的配置

<!-- 声明需要暴露的服务接口 -->
<!--读服务配置 -->
<dubbo:service group="editDevnoteByClient"
  interface="com.devnote.webService.server.TestService" ref="TestService"
  protocol="dubbo" retries="0" timeout="100000" /> <!--写服务配置 -->
<dubbo:service group="queryDevnoteByClient"
  interface="com.devnote.webService.server.TestService" ref="TestService"
  protocol="dubbo" retries="0" timeout="100000" />

<!-- 和本地bean一样实现服务 -->
<bean id="TestService" class="com.devnote.webService.server.TestServiceImpl" />

客户端的配置

<!-- 生成远程服务代理,可以和本地bean一样使用dubboService -->
<!--读服务配置 -->
<dubbo:reference id="testServiceEdit" group="editDevNoteByClient"
    listener="" interface="com.devnote.webService.server.TestService"
    protocol="dubbo" retries="0" timeout="10000" check="false">
</dubbo:reference> <!--写服务配置 -->
<dubbo:reference id="testServiceReader" group="queryDevNoteByClient"
    interface="com.devnote.webService.server.TestService" protocol="dubbo"
    retries="0" timeout="10000" check="false">
</dubbo:reference>

 


  注意点:

  1. 服务端与客户端配置的【zookeeper注册中心暴露服务地址】是由dubbo服务方提供

    <dubbo:registry address="zookeeper://IP:PORT" check="false"/>
  2. 用dubbo协议在20880端口暴露服务

    name:应用方自己暴露在dubbo方的服务名称
    port:类似于自己的tomcat端口,当你的系统有多个服务并分别有应用dubbo时,每个服务都要设置不一样                      的端口,否则会系统会报端口冲突错误

    <dubbo:protocol name="dubbo" port="20880" />
  3. 服务端与客户端通过接口来识别调用
    <dubbo:service interface="com.dubbo.provider.service.DubboService"
        ref="dubboService" protocol="dubbo" retries="0" timeout="100000" />
  4. 如果服务方要实现读写分离则是通过group和接口两个来识别调用
    <dubbo:service group="editDubboByClient"
        interface="com.devnote.webService.server.DubboService" ref="TestService"
        protocol="dubbo" retries="0" timeout="100000" />

Dubbo集成步骤的更多相关文章

  1. IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)

    ●  什么是JPush ●  一套远程推送解决方案,支持android和iOS两个平台 ●  它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ●  更多的信息,可 ...

  2. Google Admob移动广告快速集成步骤

    Google Admob移动广告快速集成步骤 第一步:引入依赖包 //admob广告 implementation 'com.google.android.gms:play-services-ads: ...

  3. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  4. Dubbo集成Spring与Zookeeper实例

    >>Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring,是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和 ...

  5. Spring+Dubbo集成Redis的两种解决方案

    当下我们的系统数据库压力都非常大,解决数据库的瓶颈问题势在必行,为了解决数据库的压力等需求,我们常用的是各种缓存,比如redis,本文就来简单讲解一下如何集成redis缓存存储,附github源码. ...

  6. 新年开篇-ERP和OA集成步骤

    1.备份要升级帐套的数据库 6点 - 6点10分完成 重启 服务器 2.升级数据库 6点30 - 7点 3.配置ERP电子表单和EasyFlow表单 7点 - 7点30分 录入多公司信息(电子签核), ...

  7. 个推安卓推送SDK集成步骤详解

    以下是一位开发者在集成个推安卓推送SDK时候的亲身经历: 作者:吃饱了想睡. 概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个 ...

  8. ShareSDK 社会化分享 集成步骤

    第一步 :获取ShareSDK 官网:http://www.mob.com 完整的集成文档:http://wiki.mob.com/android-sharesdk%E5%AE%8C%E6%95%B4 ...

  9. 同盾安卓 Android应用 集成步骤:

    Android SDK 新版 Android SDK 旧版 1.点击下载最新SDK(当前版本3.0.3),并解压fraudmetrix-xxx.zip文件.解压后文件目录为: fm-core-xxx ...

随机推荐

  1. smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。

    Smoke.js 是一个浏览器默认警告系统的JavaScript替代品,如果你想要跨浏览器与平台的标准化JavaScript警告窗口,Smoke.js就是你想要的. Smoke.js是一个轻量级且灵活 ...

  2. Linux网络管理常用命令:net-tools VS iproute2

    Exported from workflowy! net-tools ifconfigifconfig命令:用于接口及地址查看和管理 route netstat arp iproute2 ip lin ...

  3. java四种xml解析区别

    1.DOM解析 dom解析是根据树形结构解析,将整个文档加载到内存中,因此对内存的要求较高,所以可以对该文档数据进行多次操作(增,删,改,查). 2.SAX解析 SAX解析是根据事件模型解析,边读取文 ...

  4. 最近一段OI学习计划

    1.在寒假的时间里尽量吧图论和DP的基础先学一下: 图论:数,二叉树,DFS.BFS遍历,然后最短路径(Floyd.dijkstra.SPFA),然后再最小生成树吧,如果还有时间的话(kruskal( ...

  5. bitcode 关于讯飞

    在真机调试的时候一直报 ld: '/Users/Chenglijuan/Documents/语音识别/lib/iflyMSC.framework/iflyMSC(IFlyRecognizerView. ...

  6. ubuntu 安装wxpython2.8

    echo "deb http://archive.ubuntu.com/ubuntu wily main universe" | sudo tee /etc/apt/sources ...

  7. 使用rsync无密码传输

    众多数据库服务器的管理过程中,在不同服务器间的文件传输是免不了的.您可以使用scp命令或FTP方法完成文件的发送和接收,这篇文章我将给大家介绍另外一种方法,这就是rsync命令.rsync是文件传输程 ...

  8. cocos2dx 举例说明 convertToNodeSpace 与 convertToWorldSpace 的使用

    convertToNodeSpace:把世界坐标转换到当前节点的本地坐标系中. //可以应用于判断子节点是否被点击,这时就需要把坐标从世界坐标系转换为父节点的坐标系. //当然大多数情况会用CCMen ...

  9. sharepoint 2013基于AD的Form表单登录(三)——选择用户时,屏蔽掉AD。

    //来源:http://www.cnblogs.com/lrforever/p/3695820.html 隐藏AD人员选择,$ad.IsVisible设置为true,则显示出AD里用户 $cpm = ...

  10. 【IE6的疯狂之一】IE6中奇数宽高的BUG

    IE6真是太疯狂了.今天由于项目需要做了这么一个布局:一个外部的相对定位div,内部一个绝对定位的div(right:0), 如图: 可是在IE6下查看,却变成了right:1px的效果了: IE6还 ...