版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.Dubbo介绍1.1.简介Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。\5„cGunt/dusterMonitorConsumer4.invoksA,*" PnovidEr2.sub&c:rit>Eiw-r:■.y■■■'\5„cGunt/dusterMonitorConsumer4.invoksA,*" PnovidEr2.sub&c:rit>Eiw-r:■.y■■■'RegistryPratoctfContBinerProtccol上图中,蓝色方块表示与业务有交互,绿色方块表示只对Dubbo内部交互。上述图所描述的调用流程如下:1)服务提供方发布服务到服务注册中心;2)服务消费方从服务注册中心订阅服务;3)服务消费方调用已经注册的可用服务;核心功能远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。Dubbo能做什么?透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。软负载均衡及容错机制:可在内网替代F5等硬件负载均衡器,降低成本,减少单点。服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
2.Dubbo集成如第一章节介绍,Dubbo提供了系统设计分层解耦的能力。此文档以Dubbo集成demo工程为例,demo工程共分为四个子工程,如下图:卜接口声明4基础工具包A应用层一♦网,gom.i卜接口声明4基础工具包A应用层一[:='自com.isoftstone.taitie.api一—Customer[:=-左>monCustomer[::■区>com.isoftstone.taitie.mvc——A服务层 *才皿加「[:=' com.isoftstone.taitie.A服务层 *才皿加「|m|pom.xml接口工程Pom.xml依赖<dependency><groupId>mon</groupId><artifactId>mon</artifactId><version>1.0.0-SNAPSHOT</version></dependency>接口声明packagecom.isoftstone.taitie.api;importmon.base.Result;publicinterfaceIDemoService{publicResultgetMessage();)服务工程Pom.xml依赖<dependency><groupId>com.isoftstone.taitie.api</groupId><artifactId>com.isoftstone.taitie.api</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>mon</groupId><artifactId>mon</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-core-asl</artifactId></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><scope>provided</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version><exclusions><exclusion><groupId>ty</groupId><artifactId>netty</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.4</version></dependency>服务提供packagecom.isoftstone.taitie.rs.order.service;importorg.springframework.stereotype.Service;importcom.isoftstone.taitie.api.IDemoService;importmon.base.Result;@ServicepublicclassDemoServiceimplementsIDemoService{publicResultgetMessage(){//TODOAuto-generatedmethodstubStringstr="hello...";System.out.print("RS:::"+str);returnnewResult();))服务注册配置application-dubbo.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns:xsi="/2001/XMLSchema-instance"xmlns:dubbo="http://code.aL/schema/dubbo"xmlns="/schema/beans"xsi:schemaLocation="/schema/beanshttp://www.springframework.Org/schema/beans/spring-beans-4.1.xsdhttp://code.aL/schema/dubbohttp://code.aL/schema/dubbo/dubbo.xsd"><dubbo:applicationname="provider-${dubbo.service.group}"/><dubbo:registryprotocol="zookeeper"address="${zookeeper.url}"/><dubbo:protocolname="dubbo"port="${dubbo.service.port}"/><dubbo:providerretries="0"timeout="40000"group="${dubbo.service.group}"version="${dubbo.service.version}"/><dubbo:serviceinterface="com.isoftstone.taitie.api.IDemoService"ref="demoService"/></beans>dubbo属性文件dubbo.service.group=RSdubbo.service.version=0.1dubbo.service.port=20880zookeeper.url=:2181应用工程Pom.xml<dependency><groupId>com.isoftstone.taitie.api</groupId><artifactId>com.isoftstone.taitie.api</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>mon</groupId><artifactId>mon</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-core-asl</artifactId></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><scope>provided</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version><exclusions><exclusion><groupId>ty</groupId><artifactId>netty</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.4</version></dependency>服务消费packagecom.isoftstone.taitie.api.user;importorg.apache.log4j.Logger;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.ResponseBody;importcom.isoftstone.taitie.api.IDemoService;importcom.isoftstone.taitie.api.user.vo.TypeBean;importmon.base.Result;@ControllerpublicclassMyOrderController{privateLoggerlogger=Logger.getLogger(MyOrderController.class);@AutowiredprivateIDemoServicedemoService;/****/@ResponseBody@RequestMapping(value="/query",method=RequestMethod.POST)publicTypeBeanquery(Stringtype){try{System.out.println("aaaaa");TypeBeantypeBean=newTypeBean();typeBean.setType("aaaa");Resultresult=demoService.getMessage();System.out.println("MVC:::"+result.getReturnTag());returntypeBean;}catch(Exceptione){logger.error("DemoControllergetTypeserror",e);)returnnull;消费方服务发现配置application-dubbo.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns:xsi="/2001/XMLSchema-instance"xmlns:dubbo="http://code.aL/schema/dubbo"xmlns="/schema/beans"xsi:schemaLocation="/schema/beanshttp://www.springframework.Org/schema/beans/spring-beans-4.1.xsdhttp://code.aL/schema/dubbohttp://code.aL/schema/dubbo/dubbo.xsd"><dubbo:applicationname="consumer-${dubbo.service.group}"/><dubbo:registryprotocol="zookeeper"check="true"address="${zookeeper.address}"/><dubbo:consumerretries="0"timeout="40000"group="RS"version="0.1"/><!--<dubbo:annotationpackage="mon"/>--><dubbo:referenceinterface="com.isoftstone.taitie.api.IDemoService"id="demoService"group="RS"version="0.1"ur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某塑料厂环保安全制度
- 2026年天津市津南区公务员人员招聘笔试备考试题与答案详解
- 2026成都市龙泉驿区东山国际小学招聘语文数学英语教师4人考试参考题库及答案解析
- 2026年河南省信阳市事业单位人员招聘考试试题与答案详解
- 2026年渝中区公务员人员招聘考试备考试题与答案详解
- 2026年度中国民用航空局所属事业单位招聘(第二批)笔试模拟试题及答案解析
- 2026江苏苏州大学科研助理招聘16人考试参考题库及答案解析
- 2026年广东省公务员人员招聘笔试备考题库与答案详解
- 2026南宁市友谊路小学招聘编外教师1人笔试参考题库及答案解析
- 2026年丹东市振安区公务员人员招聘考试参考试题与答案详解
- 中质协六西格玛绿带考试练习题库(含答案解析)
- 2026年南昌市洪都中医院招聘劳务派遣制人员26人笔试备考试题及答案解析
- DBJ-T15-295-2026 高处作业吊篮安装检验评定标准
- 《南泥湾》教案2026-2027学年湘艺版六年级上册音乐
- AI眼镜硬件拆解及BOM成本报告:逸文Even G2 AR眼镜
- 煤矿主通风机投运方案及安全技术措施培训
- 2026年交管12123驾驶证学法减分试题(含参考答案)
- 2026安徽滁州市凤阳县国有平台公司招聘书笔试历年备考题库附带答案详解
- 2026新华资产校园招聘笔试历年参考题库附带答案详解
- 2026年软考《软件设计师》考试真题及答案
- 动态海报设计
评论
0/150
提交评论