Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
晶之木
advanced-java
提交
b012de29
A
advanced-java
项目概览
晶之木
/
advanced-java
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
advanced-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
b012de29
编写于
11月 11, 2020
作者:
Y
Yang Libin
提交者:
GitHub
11月 11, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: update dubbo protocol and close #201
新增 Dubbo 支持的通信协议
上级
26d0939f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
10 deletion
+30
-10
docs/distributed-system/dubbo-serialization-protocol.md
docs/distributed-system/dubbo-serialization-protocol.md
+30
-10
未找到文件。
docs/distributed-system/dubbo-serialization-protocol.md
浏览文件 @
b012de29
...
...
@@ -16,9 +16,9 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
### dubbo 支持不同的通信协议
-
dubbo 协议
-
dubbo 协议
`dubbo://`
**默认**
就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高。
**默认**
就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高
,以及服务消费者机器数远大于服务提供者机器数的情况
。
为了要支持高并发场景,一般是服务提供者就几台机器,但是服务消费者有上百台,可能每天调用量达到上亿次!此时用长连接是最合适的,就是跟每个服务消费者维持一个长连接就可以,可能总共就 100 个连接。然后后面直接基于长连接 NIO 异步通信,可以支撑高并发请求。
...
...
@@ -30,21 +30,41 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
![
dubbo-not-keep-connection
](
./images/dubbo-not-keep-connection.png
)
-
rmi 协议
-
rmi 协议
`rmi://`
走 Java 二进制序列化,
多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
RMI 协议采用 JDK 标准的 java.rmi.
\*
实现,采用阻塞式短连接和 JDK 标准序列化方式。
多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
-
hessian 协议
-
hessian 协议
`hessian://`
走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
Hessian 1 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。
走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
-
http 协议
-
http 协议
`http://`
走表单序列化。
基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现。
走表单序列化。
-
webservice
-
thrift 协议
`thrift://`
走 SOAP 文本序列化。
当前 dubbo 支持的 thrift 协议是对 thrift 原生协议的扩展,在原生协议的基础上添加了一些额外的头信息,比如 service name,magic number 等。
-
webservice
`webservice://`
基于 WebService 的远程调用协议,基于 Apache CXF 的 frontend-simple 和 transports-http 实现。走 SOAP 文本序列化。
-
memcached 协议
`memcached://`
基于 memcached 实现的 RPC 协议。
-
redis 协议
`redis://`
基于 Redis 实现的 RPC 协议。
-
rest 协议
`rest://`
基于标准的 Java REST API——JAX-RS 2.0(Java API for RESTful Web Services 的简写)实现的 REST 调用支持。
-
gPRC 协议
`grpc://`
Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通信,或者想利用 gRPC 带来的 Stream、反压、Reactive 编程等能力的开发者来说, 都可以考虑启用 gRPC 协议。
### dubbo 支持的序列化协议
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录