开发者学堂课程干货总结——Dubbo 分布式服务治理实践(三)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Dubbo 分布式服务治理实践课时3——Dubbo2.0分布式RPC协议解析 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程Dubbo2.0分布式RPC协议解析  ”干货总结来了~一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Dubbo2.0分布式RPC协议解析  

课程地址:https://developer.aliyun.com/learning/course/72/detail/1187

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


Dubbo2.0分布式RPC协议解析


()Dubbo分布式RPC协议解析 

DubboRPC基础上改造的一套框架底层分时通信的基础设施没变,主要是在协议层另做了一层封装,封装思路大规模服务集群治理希望支持更多协议,不仅仅是Webservice,或者REST API这种风格的通信,而是直接封装的服务接口,发送授信协议进行通信基于汽车网络协议中的MQTT再次封装 

企业局域网通信,即使公网通信,有些平台也希望定制自己的协议,典型代表QQ微信阿里钉钉,封闭的聊天系统里面通信很多,Dubbo是自定义协议,实际在此基础上提供协议的再次封装,如在TCP基础上,不仅支持REST,传统跨平台跨语言的企业级行业协议,另外会做一些协议扩展,效率方面有更高要求,希望原生的TCP或者UDP基础上,在二进制数据包上做封装 

 Dubbo的封装规定严格华为自定了一套通信加密协议,协议基于GDPUDP协议进行封装,一种格式协议,只有自己能解析QQ或者微信的协议,只有腾讯解析Dubbo思想也参考了经典分布式网络通信中的分包定义格式思想规范。 

image.png 

如上图所示, 

1-4 Version; 

5-8 Header Length; 

8-13 DifferentiatedServicesCodePoint 

14-15 ExplicitCongestionNotification 

16-18 ,19-31 Totall Length 

... 

每个比特位都有严格定义这种严格的消息定义主要用于自定义 Dubbo的通信协议编码指的是 Dubbo的自定义消息编码的格式规范。 

同样解码需要获取IP地址有效的消息载体都有严格定义,定义的字段越丰富,消息通信的语义功能越强大消息的封装也越复杂,如只留1个字节8个比特作为这个消息的额外信息后面的话全是消息有效体,消息有效载体利用率就较高。 

上图中,总共有128个比特这里作为前置所有消息的扩展定义第一阶段IP包然后 TCP包的封装,Dubbo消息包括封装序列化ID魔术编码的比特位、状态码等。 

Dubbo在原始的iptcp协议之上进行了再次封装,在对象或者数据传时候序列化,序列二进制格式这样效率更高如果JSON涉及到更复杂的编码问题。实际上Dubbo的整个原生协议封装足够复杂,128比特位自己定义用于16个字节,有效载荷就比较浪费 

Dubbo除了自定义协议的设计思想外,也其他几个典型聊天软件已对比的用标准协议,有自定义协议自定义协议封闭性更强效率更高行业标准协议虑跨平台的通用性安全性问题 

高级面试题:Dubbo支持的协议  

Dubbo支持多种协议: 

1.基于TCP协议 Netty、Mina实现 

2.Dubbo协议(默认) 

3. Hessian协议 

4. HTTP协议 

5. RMI协议 

6. WebService协议  

7. Thrift协议 

8. Memcached协议 

9. Redis协议  

10.gPRC  

11.Http2.0 

Dubbo协议支持足够丰富现在做分布式开发,Dubbo是非常优秀分布式框架扩展,通信协议的支持已经在GRPC足够优秀,强大的地方在于做大规模集群的服务治理 Dubbo不仅是一套思想更是能落地且经过阿里大规模服务实践落地检验 

(三)Dubbo默认协议  

1. Dubbo 协议默认使用Hessian2 序列化。(说明: Hessian2 是阿里在 Hessian 基础上进行的二次开发, 起名为Hessian2 )  

2. rmi协议 默认为 java 原生序列 

3. http协议 默认为 json 

4. hessian 协议,默认是 hessian 序列化 

5. webservice 协议,默认是 soap 文本序列化  

局域网方面Dubbo的原则协议已经足够优秀多种协议的好处在于可灵活根据自己的场景定制选择,允许自定义,为更复杂高级的场景允许扩展的接口 

(四)Dubbo线程消息分发模型 

•Dispatcher 分发器  

• all, direct, message, execution, connection  

ThreadPool 线程池  

• fixed, cached 

Dubbo线程消息分发模型就是客户端和和服务端进行通讯另外里面涉及到消息体的问题,消息体占多大作为消息封装框架要考虑功能效率问题 

(五)Dubbo提供的注册中心  

  1. Multicast注册中心 

2. Zookeeper注册中心  

3. Redis注册中心  

4. Simple注册中心 

相关文章
|
18天前
|
存储 分布式计算 Hadoop
【揭秘Hadoop背后的秘密!】HDFS读写流程大曝光:从理论到实践,带你深入了解Hadoop分布式文件系统!
【8月更文挑战第24天】Hadoop分布式文件系统(HDFS)是Hadoop生态系统的关键组件,专为大规模数据集提供高效率存储及访问。本文深入解析HDFS数据读写流程并附带示例代码。HDFS采用NameNode和DataNode架构,前者负责元数据管理,后者承担数据块存储任务。文章通过Java示例演示了如何利用Hadoop API实现数据的写入与读取,有助于理解HDFS的工作原理及其在大数据处理中的应用价值。
36 1
|
24天前
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
116 5
|
27天前
|
存储 Kubernetes 监控
深入浅出分布式事务:理论与实践
在数字化时代的浪潮中,分布式系统如同星辰大海般浩瀚而深邃。本文将带你航行于这片星辰大海,探索分布式事务的奥秘。我们将从事务的基本概念出发,逐步深入到分布式事务的核心机制,最后通过一个实战案例,让你亲自体验分布式事务的魅力。让我们一起揭开分布式事务的神秘面纱,领略其背后的科学与艺术。
59 1
|
1月前
|
负载均衡 Dubbo 应用服务中间件
框架巨擘:Dubbo如何一统异构微服务江湖,成为开发者的超级武器!
【8月更文挑战第8天】在软件开发中,微服务架构因灵活性和可扩展性备受欢迎。面对异构微服务的挑战,Apache Dubbo作为高性能Java RPC框架脱颖而出。它具备服务注册与发现、负载均衡及容错机制等核心特性,支持多种通信协议和序列化方式,能有效连接不同技术栈的微服务。Dubbo的插件化设计保证了面向未来的扩展性,使其成为构建稳定高效分布式系统的理想选择。
33 5
|
10天前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
18 0
|
1月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
15天前
|
消息中间件 存储 Kafka
微服务实践之分布式定时任务
微服务实践之分布式定时任务
|
1月前
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。
|
2月前
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
6681 2
|
2月前
|
人工智能 PyTorch TensorFlow
分布式训练:大规模AI模型的实践与挑战
【7月更文第29天】随着人工智能的发展,深度学习模型变得越来越复杂,数据集也越来越大。为了应对这种规模的增长,分布式训练成为了训练大规模AI模型的关键技术。本文将介绍分布式训练的基本概念、常用框架(如TensorFlow和PyTorch)、最佳实践以及可能遇到的性能瓶颈和解决方案。
300 2
下一篇
DDNS