8000 fix: update dubbo protocol and close #201 · enixdark/advanced-java@b012de2 · GitHub
[go: up one dir, main page]

Skip to content

Commit b012de2

Browse files
authored
fix: update dubbo protocol and close doocs#201
新增 Dubbo 支持的通信协议
1 parent 26d0939 commit b012de2

File tree

1 file changed

+30
-10
lines changed

1 file changed

+30
-10
lines changed

docs/distributed-system/dubbo-serialization-protocol.md

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
1616

1717
### dubbo 支持不同的通信协议
1818

19-
- dubbo 协议
19+
- dubbo 协议 `dubbo://`
2020

21-
**默认**就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高。
21+
**默认**就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高,以及服务消费者机器数远大于服务提供者机器数的情况
2222

2323
为了要支持高并发场景,一般是服务提供者就几台机器,但是服务消费者有上百台,可能每天调用量达到上亿次!此时用长连接是最合适的,就是跟每个服务消费者维持一个长连接就可以,可能总共就 100 个连接。然后后面直接基于长连接 NIO 异步通信,可以支撑高并发请求。
2424

@@ -30,21 +30,41 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
3030

3131
![dubbo-not-keep-connection](./images/dubbo-not-keep-connection.png)
3232

33-
- rmi 协议
33+
- rmi 协议 `rmi://`
3434

35-
走 Java 二进制序列化,多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
35+
RMI 协议采用 JDK 标准的 java.rmi.\* 实现,采用阻塞式短连接和 JDK 标准序列化方式。多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
3636

37-
- hessian 协议
37+
- hessian 协议 `hessian://`
3838

39-
走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
39+
Hessian 1 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
4040

41-
- http 协议
41+
- http 协议 `http://`
4242

43-
走表单序列化。
43+
基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现。走表单序列化。
4444

45-
- webservice
45+
- thrift 协议 `thrift://`
4646

47-
走 SOAP 文本序列化。
47+
当前 dubbo 支持的 thrift 协议是对 thrift 原生协议的扩展,在原生协议的基础上添加了一些额外的头信息,比如 service name,magic number 等。
48+
49+
- webservice `webservice://`
50+
51+
基于 WebService 的远程调用协议,基于 Apache CXF 的 frontend-simple 和 transports-http 实现。走 SOAP 文本序列化。
52+
53+
- memcached 协议 `memcached://`
54+
55+
基于 memcached 实现的 RPC 协议。
56+
57+
- redis 协议 `redis://`
58+
59+
基于 Redis 实现的 RPC 协议。
60+
61+
- rest 协议 `rest://`
62+
63+
基于标准的 Java REST API——JAX-RS 2.0(Java API for RESTful Web Services 的简写)实现的 REST 调用支持。
64+
65+
- gPRC 协议 `grpc://`
66+
67+
Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通信,或者想利用 gRPC 带来的 Stream、反压、Reactive 编程等能力的开发者来说, 都可以考虑启用 gRPC 协议。
4868

4969
### dubbo 支持的序列化协议
5070

0 commit comments

Comments
 (0)
0