关于Dubbo

1.什么是dubbo?

        dubbo是阿里开发的一款微服务框架,可以为微服务之间的RPC远程调用提供便捷的服务,以及SOA(Service-Oriented Architecture)的治理。       

1.1什么是RPC?     

        RPC是Remote Procedure Call的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方案RPC只是实现远程调用的一套标准该标准主要规定了两部分内容

1.1.1通信协议

通信协议指的就是远程调用的通信方式,实际上这个通知的方式可以有多种,例如:写信,飞鸽传书,闪送等等在程序中,通信方式也有多种。
dubbo支持的通信协议

        dubbo协议(认)

        rmi协议

        hessian协议

        http协议

        webservice

1.1.2序列化协议

        序列化协议指通信内容的格式,双方都要理解这个格式,通信双方都能理解的信息发送信息是序列化过程,接收信息需要反序列化,例如Java中的序列化方式,就是将实现了Serializable接口的对象转换为字节的方式。程序中,序列化的方式也是多种的:
支持的序列化协议

        hessian2(认)

        java序列化

        compactedjava

        nativejava

        fastjson

        dubbo

        fst

        kryo

注意:以上支持协议都可以通过配置文件修改

2.dubbo的发展历程
 

2012年底dubbo停止更新后到2017年dubbo继续更新之前

2015SpringCloud开始兴起,当时没有阿里的框架

国内公司要从SpringCloud和dubbo中抉择使用哪个微服务方案

在2012年dubbo停止更新后国内的当当网在dubbo的基础上开发了dubBox框架,并进行维护

2019年后,SpringCloud和dubbo才能共同使用

3.dubbo的注册和发现
 

dubbo的调用过程中,必须包含注册中心的支持注册中心推荐阿里的Nacos,兼容性好,能够发挥最大性能。但是dubbo也支持其它软件作为注册中心(例如Redis,zookeeper等)

服务发现,即消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与 IP 地址的情况下实现通信。

 

consumer服务的消费者:指服务的调用者(使用者)

provider服务的提供者:指服务的拥有者(生产者)

有些服务既是消费者,又是提供者。

dubbo中,远程调用依据是服务的提供者在Nacos中注册的服务名称

一个服务名称,可能有多个运行的实例,任何一个空闲的实例都可以提供服务

所以dubbo的注册和发现流程:
        1.服务提供者启动服务,并将自己所提供的服务注册注册中心例如:Nacos,其中包括当前提供者的ip地址和端口号等信息,dubbo会同时注册该项目提供的远程调用方法。java代码中,需要在提供服务的上方添加@dubboService注解,在Springboot启动类添加@Enabledubbo注解

        2.消费者(使用者)启动项目,也注册注册中心,同时从注册中心中获得当前项目具备的所有服务列表。
        3.当有新服务注册到中心并提供服务时,会通知已经订阅发现的消费者,消费者会更新所有服务列表,结合(心跳机制)。
        4.RPC调用,消费者需要调用远程方法时,根据注册中心服务列表的信息,只需服务名称,不需要ip地址和端口号等信息,就可以利用dubbo调用远程方法了。Java代码需要在方法接口上方添加注解@dubboReference

        dubbo调用的好处是直接将要消费的目标,编写在当前消费者的业务逻辑层中,无需编写新的代码结构,开发流程不会因为dubbo而变化。

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...