欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Dubbo学习(四)——多协议支持

程序员文章站 2022-04-01 10:51:41
除了 Dubbo 服务暴露协议 Dubbo 协议外,Dubbo 框架还支持另外 8 种服务暴露协议:RMI 协议、Hessian 协议、HTTP 协议、WebService 协议、Thrift 协议、Memcached 协议、Redis 协议、Rest 协议。但在实际生产中,使用最多的就是 Dubbo 服务暴露协议。一、各个协议的特点1 dubbo 协议 Dubbo 默认传输协议  连接个数:单连接  连接方式:长连接  传输协议:TCP  传输方式:NIO 异步传输  ......

    除了 Dubbo 服务暴露协议 Dubbo 协议外,Dubbo 框架还支持另外 8 种服务暴露协议:
RMI 协议、Hessian 协议、HTTP 协议、WebService 协议、Thrift 协议、Memcached 协议、Redis 协议、Rest 协议。但在实际生产中,使用最多的就是 Dubbo 服务暴露协议。

一、各个协议的特点 

1 dubbo 协议 
 Dubbo 默认传输协议  连接个数:单连接  连接方式:长连接  传输协议:TCP  传输方式:NIO 异步传输  适用范围:传入传出参数数据包较小(建议小于 100K),消费者比提供者个数多,单一 消费者无法压满提供者,尽量不要用 dubbo 协议传输大文件或超大字符串。 
2 rmi 协议 
 采用 JDK 标准的 java.rmi.* 实现  连接个数:多连接  连接方式:短连接  传输协议:TCP  传输方式:BIO 同步传输  适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。 
3 hession 协议 
 连接个数:多连接  连接方式:短连接  传输协议:HTTP  传输方式:BIO 同步传输  适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者抗压能力较大, 可传文件 
4 http 协议 
(1)连接个数:多连接

(2)连接方式:短连接

(3)传输协议:HTTP 
   分布式 RPC 系统框架 Dubbo 
(4)传输方式:BIO 同步传输

(5)适用场景:系统集成,跨语言调用 
5 webService 协议 
(5)连接个数:多连接  连接方式:短连接  传输协议:HTTP  传输方式:BIO 同步传输  适用场景:系统集成,跨语言调用 
6 thrift 协议 
Thrift 是 Facebook 捐给 Apache 的一个 RPC 框架,其消息传递采用的协议即为 thrift 协议。当前 dubbo 支持的 thrift 协议是对 thrift 原生协议的扩展。Thrift 协议不支持 null 值的传递。 
7 memcached 协议与 redis 协议 
它们都是高效的 KV 缓存服务器。它们会对传输的数据使用相应的技术进行缓存。 
8 rest 协议 
若需要开发具有 RESTful 风格的服务,则需要使用该协议。

二、同一服务支持多种协议 

对于多协议的用法有两种,一种是同一个服务支持多种协议,一种是不同的服务使用不 同的协议。首先来看“同一服务支持多种协议”的用法。  

1 修改生产者配置文件

Dubbo学习(四)——多协议支持

这里需要理解这个服务暴露协议的意义。其是指出,消费者若要连接当前的服务,就需 要通过这里指定的协议及端口号进行访问。这里的端口号可以是任意的,不一定非要使用默 认的端口号(Dubbo 默认为 20880,rmi 默认为 1099)。这里指定的协议名称及端口号,在 当前服务注册到注册中心时会一并写入到服务映射表中。当消费者根据服务名称查找到相应 主机时,其同时会查询出消费此服务的协议、端口号等信息。其底层就是一个 Socket 编程, 通过主机名与端口号进行连接。

 
2  修改消费者配置文件

Dubbo学习(四)——多协议支持


3  应用场景

“同一服务支持多种协议”的应用场景是:系统在使用过程中其使用场景逐渐发生了变 化,例如,由原来的消费者数量多于提供者数量,变为了消费者数量与提供者数量差不多了, 并且原来系统不用传输文件,现在的系统需要传输文件了。此时就将将原来默认的 dubbo 协议更换为 rmi 协议。目的是为了兼容老工程,扩展新功能。

本文地址:https://blog.csdn.net/xyajia/article/details/107678124

相关标签: dubbo