为什么 Dubbo 总说自己性能高?
初识 Dubbo
为什么 Dubbo 说自己性能高?
高性能要从底层的原理说起,既然是一个 RPC 框架,主要干的就是远程过程(方法)调用, 那么提升性能就要从最关键、最耗时的两个方面入手:序列化和网络通信。
序列化:我们学习 Java 网络开发的时候知道,本地的对象要在网络上传输,必须要实现Serializable 接口,也就是必须序列化。我们序列化的方案很多:xml、json、二进制流…其中效率最高的就是二进制流(因为计算机就是二进制的)。然而 Dubbo 采用的就是效率最高的二进制。
网络通信:不同于 HTTP 需要进行 7 步走(三次握手和四次挥手),Dubbo 采用 Socket 通信机制,一步到位,提升了通信效率,并且可以建立长连接,不用反复连接,直接传输数据
别的 RPC 框架
gRPC
Thrift
HSF
……
dubbo 的前世今生
dubbo 之前一直都作为 Alibaba 公司内部使用的框架。
2011 年,dubbo 被托管到了GitHub 上(开源)
2014 年11 月发布2.4.11版本后宣布停止更新。此后一段时间很多公司开源了自己基于Dubbo的变种版本(例如当当网的 Dubbo X,网易考拉的 Dubbo K)
2017 年 SpringCloud 横空出世,Dubbo 感觉到压力后连续更新了几个版本2018 年 1 月,阿里公司联合当当网将 Dubbo 和 Dubbo X 合并,发布了 2.6 版本2018 年除夕夜阿里将 Dubbo 贡献给了 Apache 基金会
2018 除夕夜至今,Apache 维护和更新 Dubbo
dubbo 概述
Apache Dubbo (incubating) |?d?b??| 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案、服务治理方案。
特性:
面向接口代理:调用接口的方法,在 A 服务器调用 B 服务器的方法,由 dubbo 实现对 B 的调用,无需关心实现的细节,就像MyBatis 访问 Dao 的接口,可以操作数据库一样。不用关心 Dao 接口方法的实现。这样开发是方便,舒服的。
基本架构
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
调用关系说明:
服务容器负责启动,加载,运行服务提供者。
服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者在启动时,向注册中心订阅自己所需的服务。
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
dubbo 支持的协议
支持多种协议:dubbo , hessian , rmi , http, webservice , thrift , memcached , redis。dubbo 官方推荐使用dubbo 协议。dubbo 协议默认端口 20880
使用 dubbo 协议,spring 配置文件加入:
<dubbo:protocol name="dubbo" port="20880" />
电商平台需求
某电商平台系统需求,用户浏览商品;选择商品下订单,订单系统需要获取用户信息中的送货地址;向支付系统请求完成付款。
123下一页>-
最低1.039元/瓦,中核127.3MW光伏PC中标候选人公示
2021-06-09 -
苹果最新芯片曝光:性能强得没边!
2021-06-07 -
iOS 14.7 beta2突然更新,仅仅是性能提升?
2021-06-04 -
RTX3080Ti上手评测:性能媲美3090!
2021-06-03 -
性能毋庸置疑,M1 iPad Pro有必要跑分吗?
2021-05-31 -
三大“国产性能车”来袭,号称“合法改装”,比领克03+更划算?
2021-05-28 -
苹果iOS14.6正式版测试:修复性能,新增无损音频
2021-05-27 -
iOS 14.6正式版来了:优化性能与修复Bug
2021-05-26 -
ARM新架构发布:大核性能飙升
2021-05-26 -
Surface Laptop 4锐龙版评测:独家定制 性能翻倍!
2021-05-25 -
突围国外技术封锁 长进激光推出高性能特种光纤
2021-05-20