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

简介: Dubbo 分布式服务治理实践课时3——Dubbo2.0分布式RPC协议解析 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

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

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

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

课程地址:https://developer.aliyun.com/learning/course/72/detail/1187?spm=a2c6h.12873639.0.0.70672e8aSWMLvg

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ


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注册中心 

相关文章
|
Kubernetes Dubbo Cloud Native
阿里云开发者学堂电子书《Dubbo分布式服务治理实战》重磅来袭!
Dubbo 是阿里巴巴开源的高性能分布式 RPC 服务治理框架,已经捐献给 Apache 开源组织,最新的版本是 3.0。在阿里巴巴、工行、电信、银联、中国人寿、网易、滴滴、当当等互联网公司中大规模使用,历经双 11 等流量检验。
阿里云开发者学堂电子书《Dubbo分布式服务治理实战》重磅来袭!
|
监控 Dubbo Java
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(四)
Dubbo 分布式服务治理实践课时4——Dubbo分布式Order订单服务集群治理实战 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(四)
|
监控 Dubbo Java
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(二)
Dubbo 分布式服务治理实践课时2——Dubbo分布式加与大规模服务集群治理 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(二)
|
监控 Dubbo Cloud Native
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(五)
Dubbo 分布式服务治理实践课时5—Dubbo集成Nacos注册中心实战。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(五)
|
监控 负载均衡 Dubbo
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(一)
Dubbo 分布式服务治理实践课时1——Dubbo分布式框架介绍与3.0新特性 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(一)
|
Dubbo 网络协议 NoSQL
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(三)
Dubbo 分布式服务治理实践课时3——Dubbo2.0分布式RPC协议解析 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Dubbo 分布式服务治理实践(三)
|
Java API Android开发
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十五)
Spring Cloud微服务架构设计与开发实战课时2.4—Spring Cloud声明式调用客户端Feign 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十五)
|
敏捷开发 运维 监控
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(三)
Spring Cloud微服务架构设计与开发实战课时1.3—微服务架构Microservice的优缺点 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(三)
|
设计模式 前端开发 架构师
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(八)
Spring Cloud微服务架 Spring Cloud微服务架构设计与开发实战课时1.8—微服务架构的设计策略 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(八)
|
Oracle Java 关系型数据库
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(五)
Spring Cloud微服务架构设计与开发实战课时1.5—微服务架构的淘宝案例 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(五)