主页 > 大数据 > dubbo框架和dubbo协议区别?

dubbo框架和dubbo协议区别?

一、dubbo框架和dubbo协议区别?

Dubbo是阿里巴巴的开源框架

Dubbox是当当网在Dubbo的基础上进行升级而成的

Dubbo支持多种协议,默认采用dubbo协议

Dubbox采用rest协议,就是http+json的restful风格

Dubbo的项目结构是采用接口单独成一个项目

然后接口的实现者就是生产者,接口的调用者就是消费者

Dubbox一般是不把接口单独成一个项目。直接用注解标识,实现完全解耦

消费者的只用声明接口,生产者实现接口也得加上相应的注解。

二、dubbo原理?

dubbo原理如下:

第一层:service层,接口层,给服务提供者和消费者来实现的。

第二层:config层,配置层,主要是对dubbo进行各种配置的。

第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton。

第四层:registry层,服务注册层,负责服务的注册与发现。

第五层:cluster层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务。

第六层:monitor层,监控层,对rpc接口的调用次数和调用时间进行监控。

第七层:protocol层,远程调用层,封装rpc调用。

第八层:exchange层,信息交换层,封装请求响应模式,同步转异步。

第九层:transport层,网络传输层,抽象mina和netty为统一接口。

第十层:serialize层,数据序列化层。

三、dubbo协议?

Dubbo 框架定义了私有的RPC协议,它优点:

○协议设计上很紧凑,能用 1 个 bit 表示的,不会用一个 byte 来表示,比如 boolean 类型的标识。

○请求、响应的 header 一致,通过序列化器对 content 组装特定的内容,代码实现起来简单。

但是Dubbo 协议没有预留扩展字段,没法新增标识,扩展性不太好,比如新增响应上下文的功能,只有改协议版本号的方式,但是这样要求客户端和服务端的版本都进行升级,对于分布式场景很不友好。

四、dubbo 文档

在当今时代,随着互联网技术的快速发展,越来越多的企业开始关注到构建分布式系统的重要性。在这样的背景下,Dubbo作为一款高性能的分布式服务框架备受企业青睐。本文将深入探讨Dubbo框架的一些重要文档,帮助读者更好地理解和使用Dubbo。

什么是Dubbo框架?

Dubbo是阿里巴巴开源的一款高性能、轻量级的分布式服务框架,能够简化分布式系统的开发与部署。它提供了一整套分布式服务治理解决方案,包括服务注册与发现、服务路由、负载均衡、分布式部署和监控等功能。

Dubbo框架的特点

1. 高性能:Dubbo框架在性能方面表现卓越,支持每秒数万次的调用。

2. 轻量级:Dubbo框架的核心只有几百K大小,对于系统资源消耗非常小。

3. 分布式部署:Dubbo框架支持分布式部署,可以在多个节点上部署提供服务的应用。

4. 高度可扩展:Dubbo框架提供了丰富的扩展点,可以方便地扩展功能。

5. 注册中心:Dubbo框架内置了多种注册中心,如Zookeeper、Redis等,方便服务的注册与发现。

6. 服务治理:Dubbo框架提供了灵活的服务治理功能,可以通过配置实现负载均衡、容错、路由等。

Dubbo框架的文档

要想深入了解和使用Dubbo框架,官方提供了详尽的文档供开发者参考。以下是几个重要的Dubbo框架文档:

1. Dubbo用户指南

用户指南是Dubbo框架的入门教程,提供了框架的基本概念和使用方法。文档详细介绍了Dubbo框架的架构设计、核心组件的功能及配置方法,适合初学者阅读。

在读完用户指南后,开发者可以快速上手使用Dubbo框架,理解其基本原理和使用方式。

2. Dubbo开发手册

开发手册是Dubbo框架的高级文档,适用于已经熟悉Dubbo框架的开发者。该文档提供了Dubbo框架各个模块的详细介绍和示例代码,帮助开发者更深入地理解框架的内部实现。

开发手册还介绍了Dubbo框架的扩展机制和自定义功能开发,开发者可以根据自身需求进行定制化开发。

3. Dubbo配置手册

配置手册是Dubbo框架的配置参考文档。该文档详细介绍了Dubbo框架的各种配置项及其含义,开发者可以根据需要进行配置调整。

Dubbo框架提供了丰富的配置选项,包括注册中心配置、协议配置、集群容错配置等。通过配置手册,开发者可以灵活地配置Dubbo框架以满足不同的业务需求。

4. Dubbo运维手册

运维手册是Dubbo框架的管理和监控文档。该文档介绍了Dubbo框架的监控平台和管理工具,帮助企业更好地运维分布式系统。

Dubbo框架提供了丰富的监控指标和报警机制,可以实时监控系统的运行情况。运维手册还介绍了Dubbo框架的集群部署和故障处理方法,帮助企业建立稳定可靠的分布式系统。

Dubbo框架的学习资源

除了以上文档,还有一些其他学习资源可以辅助开发者学习和使用Dubbo框架:

1. Dubbo示例代码

Dubbo框架官方提供了丰富的示例代码,覆盖了常见的应用场景和使用方式。开发者可以通过阅读和运行示例代码,更好地理解和掌握Dubbo框架的使用。

2. Dubbo源码分析

对于希望深入理解Dubbo框架内部实现原理的开发者,可以通过阅读Dubbo源码进行分析。Dubbo框架源码开放,开发者可以从中学习到优秀的设计思想和实践经验。

结语

Dubbo框架作为一款优秀的分布式服务框架,为企业构建高性能、可扩展的分布式系统提供了有力的支持。通过阅读Dubbo框架的相关文档和学习资源,开发者可以更好地理解和使用该框架,提升系统开发和运维的效率。

Dubbo框架的文档和学习资源非常丰富,对于初学者和有经验的开发者都具有很大的帮助。希望本文能够带给读者对Dubbo框架的更深层次的了解和认识,以及对分布式系统开发的启发。

五、dubbo官网更新了?dubbo是复活了吗?

yes it is

六、dubbo集群模式?

Dubbo的集群就是指接口提供者的集合,而不是节点或者机器的集合。做为一个开放的rpc框架,显然要能够很容易的集成现有的注册中心。

这里Dubbo的逻辑是,如果url是具体服务节点的url,比如dubbo://127.0.0.1:12345,那就正常走建立连接,发起调用。

如果url是注册中心url,Dubbo通过替换成集群的Invoker来发起调用。

七、阿里dubbo作者?

梁飞在 2011 年开源 Dubbo 这个项目的时候,完全没有想过,Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注、一百多人参与贡献的超级项目。在自己退出这个项目多年后,Dubbo 仍在野蛮生长,并焕发新机。

八、dubbo设计优点?

优点:

1.远程通讯: 提供对多种基于长连接的NIO框架抽象封装, 包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。

2.软负载均衡及容错机制: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。

可在内网替代F5等硬件负载均衡器,降低成本,减少单点。

3.服务自动注册与发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器 。

4.提供完善的管理控制台dubbo-admin与简单的控制中心dubbo-monitor

5.Dubbo提供了伸缩性很好的插件模型,很方便进行扩展(ExtensionLoader)

6.支持多协议

7.Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

九、eureka dubbo区别?

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。

dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

十、dubbo 接口配置?

一、dubbo配置之间的关系:

       左边是服务提供方的相关配置,右边是服务消费方的相关配置。中间是两方的共享配置。下边是方法和方法参数的相关配置。

       ReferenceConfig继承ConsumerConfig,ServiceConfig继承ProviderConfig。如果没有进行Reference和Service的配置,默认是Consumer和Provider的配置。

二、配置覆盖关系:

       1、方法级优先,接口级次之,全局配置再次之。(级别小的优先)

       2、如果级别一样,则消费方优先,提供方次之。

       其中,服务提供方配置,通过URL经由注册中心传递给消费方。

       (配置的查找顺序,其他retries,loadbalance,actives等类似)

三、标签:

四、举例

1、项目中的配置

dubbo.xml的配置如下:

<!-- 应用信息,用于计算依赖关系 -->

<dubbo:application name="basicInfoservice"/>

<!-- 使用zookeeper注册中心暴露服务地址 -->

<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="${dubbo.registry.register}"/>

<!--使用dubbo协议,basicInfoservice应用的端口为20881-->

<dubbo:protocol name="dubbo" port="20881"/>

<!--提供方的超时时间为3s-->

<dubbo:provider timeout="3000"/>

<!--消费方的超时时间为3s-->

<dubbo:consumer check="false" timeout="3000"/>

<!--需要引用的服务-->

<dubbo:reference id="dictionaryFacade" interface="com.dmsdbj.itoo.singleTableMaintain.facade.DictionaryFacade" />

<!--需要暴露的服务-->

<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" />

<!--studentFacade服务的超时时间为30s,addStudent方法的超时时间为60s-->

<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" timeout="30000"

loadbalance="roundrobin" >

<dubbo:method name="addStudent" timeout="60000"/>

</dubbo:service>

dubbo-server.properties配置如下:

dubbo.registry.address=zookeeper://192.168.22.156:2181?backup=192.168.22.154:2181,192.168.22.156:2182

dubbo.basicInfo.group=basicInfo

dubbo.basicInfo.version=1.0.0

dubbo.registry.register=false

       上述实例,我们的全局的超时时间为3s,负载均衡策略为随机,student服务的超时时间为30s,负载均衡策略为轮询。addStudent的超时时间为60s。

2、

<dubbo:annotation package="com.dmsdbj.itoo.basicInfo.facade"/>

这段配置的作用是开启注解扫描。

开启注解之后,就可以使用@Reference和@Service来订阅服务或者暴露服务啦。需要注意的是@Service并不是Spring的注解,而是

dubbo的注解 import com.alibaba.dubbo.config.annotation.Service;

也可以说<dubbo:reference>标签+@Autowired等价于<dubbo:annotation package="">+@Reference。

相关推荐