Dubbo

Dubbo是一个由阿里巴巴开源的高性能Java RPC框架,它实现了接口调用、智能容错、负载均衡等功能。通过使用二进制序列化和Socket通信机制,Dubbo提升了远程调用的效率。服务提供者在启动时向注册中心注册服务,服务消费者则订阅所需服务并进行软负载均衡调用。此外,Dubbo支持多种协议,推荐使用Dubbo协议。在2018年,Dubbo被贡献给Apache基金会并持续维护更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo是一款高性能、轻量级的开源Java RPC(远程过程调用)框架,解决了分布式中的调用问题,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

为什么说Dubbo是高性能的?

高性能要从底层说起,既然是一个RPC框架,主要就是远程过程调用,提升性能最关键,最耗时的就是:序列化和网络通信。

序列化:本地对象在网络上传输,必须要实现Serializable接口,也就是必须序列化,序列化的方案有很多,比如,xml、json、二进制流...其中效率最高的就是二进制流,因为计算机就是二进制的,然而Dubbo采用的就是二进制流的方式

网络通信:不同于HTTP需要进行7步走(三次握手和四次挥手),Dubbo采用Socket通信机制,一步到位,提升了通信效率,并且可以建立长连接,不用反复连接,直接传输数据

Dubbo前世今生

Dubbo之前一直都作为Alibaba公司内部使用的矿机

2011年,Dubbo被托管到了GitHub上(开源)

2014年11月发布2.4.11版本宣布停止更新

2017年SpringCloud出世,Dubbo连续更新了几个版本

2018年除夕夜阿里将Dubbo贡献给了Apache基金会

2018年至今,Apache维护和更新Dubbo

Dubbo java RPC框架图

服务提供者(Provider):暴露服务的提供方,服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者(Consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,在选另一台调用

注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者

监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo支持的协议

Dubbo支持多种协议:dubbo、hessian、rmi、webservice、thrift、memcached、redis。

官方推荐使用Dubbo协议,Dubbo协议默认端口20880

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有腰的嘟嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值