Dubbo集成步骤
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>
注意点:
- 服务端与客户端配置的【zookeeper注册中心暴露服务地址】是由dubbo服务方提供
<dubbo:registry address="zookeeper://IP:PORT" check="false"/>
- 用dubbo协议在20880端口暴露服务
name:应用方自己暴露在dubbo方的服务名称
port:类似于自己的tomcat端口,当你的系统有多个服务并分别有应用dubbo时,每个服务都要设置不一样 的端口,否则会系统会报端口冲突错误<dubbo:protocol name="dubbo" port="20880" />
- 服务端与客户端通过接口来识别调用
<dubbo:service interface="com.dubbo.provider.service.DubboService"
ref="dubboService" protocol="dubbo" retries="0" timeout="100000" /> - 如果服务方要实现读写分离则是通过group和接口两个来识别调用
<dubbo:service group="editDubboByClient"
interface="com.devnote.webService.server.DubboService" ref="TestService"protocol="dubbo" retries="0" timeout="100000" />
Dubbo集成步骤的更多相关文章
- IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)
● 什么是JPush ● 一套远程推送解决方案,支持android和iOS两个平台 ● 它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ● 更多的信息,可 ...
- Google Admob移动广告快速集成步骤
Google Admob移动广告快速集成步骤 第一步:引入依赖包 //admob广告 implementation 'com.google.android.gms:play-services-ads: ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- Dubbo集成Spring与Zookeeper实例
>>Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring,是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和 ...
- Spring+Dubbo集成Redis的两种解决方案
当下我们的系统数据库压力都非常大,解决数据库的瓶颈问题势在必行,为了解决数据库的压力等需求,我们常用的是各种缓存,比如redis,本文就来简单讲解一下如何集成redis缓存存储,附github源码. ...
- 新年开篇-ERP和OA集成步骤
1.备份要升级帐套的数据库 6点 - 6点10分完成 重启 服务器 2.升级数据库 6点30 - 7点 3.配置ERP电子表单和EasyFlow表单 7点 - 7点30分 录入多公司信息(电子签核), ...
- 个推安卓推送SDK集成步骤详解
以下是一位开发者在集成个推安卓推送SDK时候的亲身经历: 作者:吃饱了想睡. 概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个 ...
- ShareSDK 社会化分享 集成步骤
第一步 :获取ShareSDK 官网:http://www.mob.com 完整的集成文档:http://wiki.mob.com/android-sharesdk%E5%AE%8C%E6%95%B4 ...
- 同盾安卓 Android应用 集成步骤:
Android SDK 新版 Android SDK 旧版 1.点击下载最新SDK(当前版本3.0.3),并解压fraudmetrix-xxx.zip文件.解压后文件目录为: fm-core-xxx ...
随机推荐
- 2017 01 16 校内小测 ZXR专场
我等蒟蒻爆零之后,问LincHpin大爷:“此等神题可有甚么来头?” LincHpin:“此三题皆为当年ZXR前辈所留.” 固名之,ZXR专场,233~~~ T1 勤奋的YouSiki 这个题在BZO ...
- hdu1038
#include <stdio.h> #define P 3.1415927 #define toFeet(x) x/12.0 #define toMiles(x) x/5280.0 in ...
- Jersey中的常用注解总结
@GET:该注解标记的方法表明用于处理GET请求,GET方法是幂等且安全的. @POST:该注解标记的方法表明处理POST请求,POST方法表明是一种创建操作的方法,POST方法是一种写操作的HTTP ...
- 觉得VR头显太笨重?轻便的VR“神器”来了
一直以来需要搭配手机才能使用的VRBOX(VR眼镜盒子)都被大家诟病携带不便.比较笨重.不透气等等问题.大家也一直期待能够有轻便的搭配手机的VR设备出现,最好是可以随身携带的.另外一方面,作为手机最常 ...
- CPU和GPU的区别
个人认为CPU和GPU各有自己的适应领域.CPU(Central Processing Unit)计算核心较少,通常是双核.四核.八核,但是拥有大量的共享缓存.预测.乱序执行等优化,可以做逻辑非常复杂 ...
- js实现复制内容
一.实现点击按钮,复制文本框中的的内容 <script type="text/javascript"> function ...
- Uva 10780 Again Prime? No Time.(分解质因子)
题意:给你两个数m和n,问 n! 可以被 m^k 整除的k的最大值 思路:从这道我们可以想到n!末尾有多少个0的问题,让我们先想一下它的思想,我们找 n! 末尾有多少0, 实际上我们是在找n!中5的个 ...
- 最近一段OI学习计划
1.在寒假的时间里尽量吧图论和DP的基础先学一下: 图论:数,二叉树,DFS.BFS遍历,然后最短路径(Floyd.dijkstra.SPFA),然后再最小生成树吧,如果还有时间的话(kruskal( ...
- CodeForces 340E Iahub and Permutations
容斥原理,组合数. 找出有$cnt$个数字还有没放,那么总方案数就是$cnt!$. 总方案数里面包含了正确的和非正确的,我们需要将非正确的删去. 先删去$1$个数字$a[i]=i$的情况,发现会多删, ...
- jquery.ajax异步发送请求的简单测试
使用ajax异步发送请求到一般处理程序,判断输入的用户名和密码 1.添加Html页面,导入jquery 2.编写js代码和页面标签 <script type="text/javascr ...