您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > dubbo基础功能介绍与使用
Dubbo基础培训功能介绍与使用大纲•Dubbo简单介绍•Dubbo-RPC基本功能•Dubbo-RPC高级功能(省略)•Dubbo如何使用第2页/共37页Dubbo背景单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。流动计算架构当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。第3页/共37页Dubbo是什么•Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。基于注册中心模式实现RPC远程服务调用,告别WebService模式。其核心部分包含:远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。第4页/共37页Dubbo如何使用•本地服务•远程服务beanid=“xxxService”class=“com.xxx.XxxServiceImpl”/beanid=“xxxAction”class=“com.xxx.XxxAction”propertyname=“xxxService”ref=“xxxService”//beanbeanid=“xxxService”class=“com.xxx.XxxServiceImpl”/!--和本地服务一样实现远程服务--dubbo:serviceinterface=“com.xxx.XxxService”ref=“xxxService”/!--增加暴露远程服务配置--dubbo:referenceid=“xxxService”interface=“com.xxx.XxxService”/!--增加引用远程服务配置--beanid=“xxxAction”class=“com.xxx.XxxAction”!--和本地服务一样使用远程服务--propertyname=“xxxService”ref=“xxxService”//bean服务提供方:服务消费方:第5页/共37页Dubbo架构调用关系说明:0.服务容器负责启动,加载,运行服务提供者。1.服务提供者在启动时,向注册中心注册自己提供的服务。2.服务消费者在启动时,向注册中心订阅自己所需的服务。3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。节点角色说明:Provider:暴露服务的服务提供方。Consumer:调用远程服务的服务消费方。Registry:服务注册与发现的注册中心。Monitor:统计服务的调用次调和调用时间的监控中心。Container:服务运行容器。第6页/共37页Dubbo基本原理第7页/共37页Dubbo优缺点优点:1、使用简单方便2、统一的服务调用地址3、能进行软负载均衡,降低对F5硬件负载均衡器的依赖,也能减少部分成本4、连通性:注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表注册中心和监控中心都是可选的,服务消费者可以直连服务提供者5、健壮性:监控中心宕掉不影响使用,只是丢失部分采样数据注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复缺点:只支持JAVA语言第8页/共37页Dubbo-RPC基本功能篇SOA因你而简单第9页/共37页Dubbo-RPC基本功能配置配置继承可配置可编程Gracefulshutdown优雅停机多注册中心注册中心集群多协议不同服务不同协议同一服务多协议本地服务调用集群&容错集群原理容错规则服务匹配服务分组、多版本指定调用只订阅第10页/共37页基本功能-配置继承图中以timeout为例,显示了配置的查找顺序,其它retries,loadbalance,actives等类似。方法级优先,接口级次之,全局配置再次之。如果级别一样,则消费方优先,提供方次之。建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。第11页/共37页基本功能-可编程可配置-暴露服务第12页/共37页基本功能-可编程可配置-引用服务第13页/共37页基本功能-服务分组当一个接口有多种实现时,可以用group区分dubbo:servicegroup=feedbackinterface=com.xxx.IndexService/dubbo:servicegroup=memberinterface=com.xxx.IndexService/!–总是只调一个可用组的实现--dubbo:referenceid=barServiceinterface=com.foo.BarServicegroup=*/服务消费方:dubbo:referenceid=feedbackIndexServicegroup=feedbackinterface=com.xxx.IndexService/dubbo:referenceid=memberIndexServicegroup=memberinterface=com.xxx.IndexService/服务提供方:第14页/共37页基本功能-多版本当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用dubbo:serviceinterface=com.foo.BarServiceversion=1.0.0/dubbo:serviceinterface=com.foo.BarServiceversion=2.0.0/!–不区分版本--dubbo:referenceid=barServiceinterface=com.foo.BarServiceversion=*/服务提供方:服务消费方:dubbo:referenceid=barServiceinterface=com.foo.BarServiceversion=1.0.0/dubbo:referenceid=barServiceinterface=com.foo.BarServiceversion=2.0.0/第15页/共37页基本功能-指定调用在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连。点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表。A接口配置点对点,不影响B接口从注册中心获取列表。注意:为了避免复杂化线上环境,不要在线上使用这个功能,只应在测试阶段使用。第16页/共37页基本功能-只订阅共用注册中心,开发人员机器上的服务提供者被误调,影响其他开发人员(开发、测试环境)dubbo:registryregister=“false”/第17页/共37页基本功能-集群&容错负载均衡算法:第18页/共37页基本功能-集群&容错集群容错方式:第19页/共37页基本功能-多协议数据序列化格式:数据传输协议:网络传输类型:第20页/共37页基本功能-多协议不同服务不同协议比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。同一服务多协议比如:需要与http客户端互操作!--多协议配置--dubbo:protocolname=dubboport=20880/dubbo:protocolname=rmiport=1099/!--使用dubbo协议暴露服务--dubbo:serviceinterface=com.alibaba.hello.api.HelloServiceversion=1.0.0ref=helloServiceprotocol=dubbo/!--使用rmi协议暴露服务--dubbo:serviceinterface=com.alibaba.hello.api.DemoServiceversion=1.0.0ref=demoServiceprotocol=rmi/!--多协议配置--dubbo:protocolname=dubboport=20880/dubbo:protocolname=hessianport=8080/!--使用多个协议暴露服务--dubbo:serviceid=helloServiceinterface=com.alibaba.hello.api.HelloServiceversion=1.0.0protocol=dubbo,hessian/第21页/共37页基本功能-多注册中心注册中心:第22页/共37页基本功能-多注册中心一个服务注册到一个注册中心,也可以注册到多个注册中心在实际应用时,可以针对服务做分类,有的服务注册到多个注册中心,有的服务可能只需注册到一个注册中心。!--多注册中心配置--dubbo:registryid=hangzhouRegistryaddress=10.20.141.150:9090/dubbo:registryid=qingdaoRegistryaddress=10.20.141.151:9010default=false/!--向多个注册中心注册--dubbo:serviceinterface=com.alibaba.hello.api.HelloServiceversion=1.0.0ref=helloServiceregistry=hangzhouRegistry,qingdaoRegistry/!--向一个注册中心注册--dubbo:serviceinterface=com.alibaba.hello.api.DemoServiceversion=1.0.0ref=demoServiceregistry=hangzhouRegistry/!--多注册中心配置--dubbo:registryid=hangzhouRegistryaddress=10.20.141.150:9090/dubbo:registryid=qingdaoRegistryaddress=10.20.141.151:9010default=false/!–引用的服务在多个注册中心--dubbo:referenceid=“helloServiceinterface=com.alibaba.hello.api.HelloServi
本文标题:dubbo基础功能介绍与使用
链接地址:https://www.777doc.com/doc-3418800 .html