Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 合同模板 > dubbo-指定序列化协议,Dubbo序列化协议

dubbo-指定序列化协议,Dubbo序列化协议

收藏

本作品内容为dubbo-指定序列化协议,格式为 docx ,大小 40284 KB ,页数为 45页

dubbo-指定序列化协议


('第1页共45页竭诚为您提供优质文档/双击可除dubbo,指定序列化协议篇一:dubbo详解dubbo的背景...........................................................................................................................2dubbo的应用...................................................第2页共45页........................................................................2架构...........................................................................................................................................3简单用法...................................................................................................................................3使用协议...................................................第3页共45页................................................................................5dubbo协议...............................................................................................................5Rmi协议...................................................................................................................5hessian协议...................................................第4页共45页..........................................................6http协议.................................................................................................................6webservice协议.......................................................................................................7多协议...................................................第5页共45页....................................................................................7不同服务不同协议...................................................................................................7多协议暴露服务.......................................................................................................8dubbo注册中心......................................................................................................第6页共45页.................8最简单的multicast注册中心..................................................................................8zookeeper推荐的注册中心....................................................................................8简易监控中心.........................................................................................................................10管理控制第7页共45页台.............................................................................................................................10集群使用.................................................................................................................................10特性.........................................................................................................................10容错模第8页共45页式.................................................................................................................11负载均衡.................................................................................................................................11服务容器.................................................................................................................................12基本配置使用说第9页共45页明.................................................................................................................13xml配置.................................................................................................................13properties文件配置...............................................................................................14自带优化功能第10页共45页.........................................................................................................................14结果缓存.................................................................................................................14异步调用.................................................................................................................14事件通知第11页共45页.................................................................................................................15本地存根.................................................................................................................15本地伪装.................................................................................................................16开发连调与自测第12页共45页.....................................................................................................................17服务分组.................................................................................................................17多版本.....................................................................................................................17直连提供者第13页共45页.............................................................................................................18只订阅.....................................................................................................................18泛化引用.................................................................................................................18获取上下文(dubbo的配置第14页共45页).............................................................................18延迟暴露.................................................................................................................19telnet命令.............................................................................................................................19ls显示服务列表...................................................第15页共45页.................................................19ps显示服务端口列表...........................................................................................19cd............................................................................................................................19pwd显示当前缺省服务........................................................................................20trace跟踪方法的调用情况第16页共45页..................................................................................20count统计服务的调用情况.................................................................................20invoke调用方法....................................................................................................20status显示资源状态.............................................................................................20log日第17页共45页志.................................................................................................................20最佳实践.................................................................................................................................21分包.........................................................................................................................21粒第18页共45页度.........................................................................................................................21版本.........................................................................................................................21兼容性.....................................................................................................................21枚举第19页共45页值.....................................................................................................................21序列化.....................................................................................................................22异常.........................................................................................................................22调第20页共45页用.........................................................................................................................22推荐用法.................................................................................................................................22在provider上尽量多配置consumer端属性.......................................................22provider上配置合理的provider端属性第21页共45页..............................................................23配置dubbo的缓存文件........................................................................................23dubbo优势.............................................................................................................................23dubbo劣势......................................................................................................第22页共45页.......................24注意事项.................................................................................................................................24maven依赖与jar包..............................................................................................................24总结......................................................................................................第23页共45页...................................26dubbo的背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。dubbo的应用用于大规模服务化,通过在消费方获取服务提供方地址列表,实现软负载均衡,减轻硬件压力。架构最简单调用图节点角色说明:provider:暴露服务的服务提供方。consumer:调用远程服务的服务消费方。Registry:服务注册与发现的注册中心。monitor:统计服务的调用次调和调用时间的监控中心。第24页共45页container:服务运行容器。调用关系说明:0.服务容器负责启动,加载,运行服务提供者。1.服务提供者在启动时,向注册中心注册自己提供的服务。2.服务消费者在启动时,向注册中心订阅自己所需的服务。3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。简单用法需与spring集成(也可以调用api,但官方不推荐,第25页共45页且代码臃肿)。java代码跟正常功能一样,只需要一个接口和一个实现类,像正常spring一样配置。需要详细说明的是xml配置:提供者(服务端):消费者(调用客户端):代码简单解释(配置项暂不说明):在服务端只需用timeout="100000"/>这段配置来暴露服务的接口,ref的值是spring配置的bean。在客户端,来声明一个spring的bean,然后可以在需要的地方获取这个bean,接着直接调用该接口的所有方法。如:这段代码就是获取spring的配置文件后,获取bean,然后远程调用,并且获取返回值。第26页共45页使用协议dubbo协议采用nio复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用),在大文件传输时,单一连接会成为瓶颈。dubbo协议缺省每服务每提供者每消费者使用单一长连接,如果数据量较大,可以使用多个连接。示例:或表示该服务使用jVm共享长连接。(缺省)或表示该服务使用独立长连接。或表示该服务使用独立两条长连接。连接个数:单连接连接方式:长连接传输协议:tcp传输方式:nio异步传输第27页共45页序列化:hessian二进制序列化适用范围:传入传出参数数据包较小(建议小于100k),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串适用场景:常规远程服务方法调用协议约束:1参数及返回值需实现serializable接口2参数及返回值不能自定义实现list,map,number,date,calendar等接口,只能用jdk自带的实现,因为hessian会做特殊处理,自定义实现类中的属性值都会丢失。3只传成员属性值和值的类型,不传方法或静态变量。4接口增加方法,对客户端无影响,如果该方法不是客户端需要的,客户端不需要重新部署;输入参数和结果集中增加属性,对客户端无影响,如果客户端并不需要新属第28页共45页性,不用重新部署;输入参数和结果集属性名变化,对客户端序列化无影响,但是如果客户端不重新部署,不管输入还是输出,属性名变化的属性值是获取不到的。Rmi协议可与原生Rmi互操作,基于tcp协议,偶尔会连接失败,需重建stub。如果服务接口继承了java.rmi.Remote接口,可以和原生Rmi互操作,即:提供者用dubbo的Rmi协议暴露服务,消费者直接用标准Rmi接口调用,或者提供方用标准Rmi暴露服务,消费方用dubbo的Rmi协议调用。如果服务接口没有继承java.rmi.Remote接口,缺省dubbo将自动生成一个篇二:阿里云产品dubbo1简介dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的Rpc远程服务调用方案,以及soa服务治理方案。第29页共45页dubbo的核心部分包含:远程通讯:提供对多种基于长连接的nio框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器2功能特性dubbo的产品特性,包括:(1)连通性:注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注第30页共45页册中心不转发请求,压力较小监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者注册中心和监控中心全部宕机,不影响已运行的提供第31页共45页者和消费者,消费者在本地缓存了提供者列表注册中心和监控中心都是可选的,服务消费者可以直连服务提供者(2)健状性:监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务消费者通过本地缓存的服务提供者列表,与服务提供者通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复第32页共45页(3)伸缩性:注册中心为对等集群,可动态增加机器部署实例,注册中心发送新注册中心集群列表到所有客户端(即自动发现新的注册中心)服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者(4)升级性:当服务集群规模进一步扩大,带动it治理结构进一步升级,需要实现动态部署,进行流动计算,现有分布式服务架构不会带来阻力:3原理逻辑示意图节点角色说明:provider:暴露服务的服务提供方。consumer:调用远程服务的服务消费方。第33页共45页Registry:服务注册与发现的注册中心。monitor:统计服务的调用次调和调用时间的监控中心。container:服务运行容器。调用关系说明:1.2.3.4.服务容器负责启动,加载,运行服务提供者。服务提供者在启动时,向注册中心注册自己提供的服务。服务消费者在启动时,向注册中心订阅自己所需的服务。注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。5.服务消费者,从提供者地址列表中,基于软负载均第34页共45页衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。6.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。4应用框架(说明该产品的应用模式)4.1集群容错各节点关系:这里的invoker是provider的一个可调用service的抽象,invoker封装了provider地址及service接口信第35页共45页息。directory代表多个invoker,可以把它看成list,但与list不同的是,它的值可能是动态变化的,比如注册中心推送变更。cluster将directory中的多个invoker伪装成一个invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个。Router负责从多个invoker中按路由规则选出子集,比如读写分离,应用隔离等。loadbalance负责从多个invoker中选出具体的一个用于本次调用,选的过程包含了负载均衡算法,调用失败后,需要重选4.2负载均衡在集群负载均衡时,dubbo提供了多种均衡策略,缺省为random随机调用。Randomloadbalance随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后第36页共45页也比较均匀,有利于动态调整提供者权重。RoundRobinloadbalance篇三:dubbo架构设计详解dubbo是alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(provider)和服务消费方(consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。总体架构dubbo的总体架构,如图所示:dubbo框架设计一共划分了10个层,而最上面的service层第37页共45页是留给实际想要使用dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。下面,结合dubbo官方文档,我们分别理解一下框架分层架构中,各个层次的设计要点:1.服务接口层(service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。2.配置层(config):对外配置接口,以serviceconfig和Referenceconfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类。3.服务代理层(proxy):服务接口透明代理,生成服务的客户端stub和服务器端第38页共45页skeleton,以serviceproxy为中心,扩展接口为proxyFactory。4.服务注册层(Registry):封装服务地址的注册与发现,以服务uRl为中心,扩展接口为RegistryFactory、Registry和Registryservice。可能没有服务注册中心,此时服务提供方直接暴露服务。5.集群层(cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以invoker为中心,扩展接口为cluster、directory、Router和loadbalance。将多个服务提供方组合为一个服务提供方,实现对服务消费方来透明,只需要与一个服务提供方进行交互。6.监控层(monitor):Rpc调用次数和调用时间监控,以statistics为中心,扩展接第39页共45页口为monitorFactory、monitor和monitorservice。7.远程调用层(protocol):封将Rpc调用,以invocation和Result为中心,扩展接口为protocol、invoker和exporter。protocol是服务域,它是invoker暴露和引用的主功能入口,它负责invoker的生命周期管理。invoker是实体域,它是dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。8.信息交换层(exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为exchanger、exchangechannel、exchangeclient和exchangeserver。第40页共45页9.网络传输层(transport):抽象mina和netty为统一接口,以message为中心,扩展接口为channel、transporter、client、server和codec。10.数据序列化层(serialize):可复用的一些工具,扩展接口为serialization、objectinput、objectoutput和threadpool。从上图可以看出,dubbo对于服务提供方和服务消费方,从框架的10层中分别提供了各自需要关心和扩展的接口,构建整个服务生态系统(服务提供方和服务消费方本身就是一个以服务为中心的)。根据官方提供的,对于上述各层之间关系的描述,如下所示:在Rpc中,protocol是核心层,也就是只要有第41页共45页protocol+invoker+exporter就可以完成非透明的Rpc调用,然后在invoker的主过程上Filter拦截点。图中的consumer和provider是抽象概念,只是想让看图者更直观的了解哪些类分属于客户端与服务器端,不用client和server的原因是dubbo在很多场景下都使用provider、consumer、Registry、monitor划分逻辑拓普节点,保持统一概念。而cluster是外围概念,所以cluster的目的是将多个invoker伪装成一个invoker,这样其它人只要关注protocol层invoker即可,加上cluster或者去掉cluster对其它层都不会造成影响,因为只有一个提供者时,是不需要cluster的。proxy层封装了所有接口的透明化代理,而在其它层都以invoker为中心,只有到了暴露给用户使用时,才用proxy将invoker转成接口,或将接口实现转成invoker,第42页共45页也就是去掉proxy层Rpc是可以Run的,只是不那么透明,不那么看起来像调本地服务一样调远程服务。而Remoting实现是dubbo协议的实现,如果你选择Rmi协议,整个Remoting都不会用上,Remoting内部再划为transport传输层和exchange信息交换层,transport层只负责单向消息传输,是对mina、netty、grizzly的抽象,它也可以扩展udp传输,而exchange层是在传输层之上封装了Request-Response语义。Registry和monitor实际上不算一层,而是一个独立的节点,只是为了全局概览,用层的方式画在一起。从上面的架构图中,我们可以了解到,dubbo作为一个分布式服务框架,主要具有如下几个核心的要点:服务定义第43页共45页服务是围绕服务提供方和服务消费方的,服务提供方实现服务,而服务消费方调用服务。服务注册对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务的数量、类型也不断膨胀;对于服务消费方,它最关心如何获取到它所需要的服务,而面对复杂的应用系统,需要管理大量的服务调用。而且,对于服务提供方和服务消费方来说,他们还有可能兼具这两种角色,即既需要提供服务,有需要消费服务。通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理。服务注册中心可以通过特定协议来完成服务对外的统一。dubbo提供的注册中心有如下几种类型可供选择:multicast注册中心zookeeper注册中心Redis注册中第44页共45页心simple注册中心服务监控无论是服务提供方,还是服务消费方,他们都需要对服务调用的实际状态进行有效的监控,从而改进服务质量。远程通信与信息交换远程通信需要指定通信双方所约定的协议,在保证通信双方理解协议语义的基础上,还要保证高效、稳定的消息传输。dubbo继承了当前主流的网络通信框架,主要包括如下几个:minanettygrizzly服务调用下面从第45页共45页dubbo官网直接拿来,看一下基于Rpc层,服务提供方和服务消费方之间的调用关系,如图所示:上图中,蓝色的表示与业务有交互,绿色的表示只对dubbo内部交互。上述图所描述的调用流程如下:1.服务提供方发布服务到服务注册中心;2.服务消费方从服务注册中心订阅服务;3.服务消费方调用已经注册的可用服务接着,将上面抽象的调用流程图展开,详细如图所示:注册/注销服务',)


  • 编号:1700665936
  • 分类:合同模板
  • 软件: wps,office word
  • 大小:45页
  • 格式:docx
  • 风格:商务
  • PPT页数:40284 KB
  • 标签:

广告位推荐

相关合同模板更多>