File tree Expand file tree Collapse file tree 1 file changed +30
-10
lines changed Expand file tree Collapse file tree 1 file changed +30
-10
lines changed Original file line number Diff line number Diff line change @@ -16,9 +16,9 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
16
16
17
17
### dubbo 支持不同的通信协议
18
18
19
- - dubbo 协议
19
+ - dubbo 协议 ` dubbo:// `
20
20
21
- ** 默认** 就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高。
21
+ ** 默认** 就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列化协议。使用的场景是:传输数据量小(每次请求在 100kb 以内),但是并发量很高,以及服务消费者机器数远大于服务提供者机器数的情况 。
22
22
23
23
为了要支持高并发场景,一般是服务提供者就几台机器,但是服务消费者有上百台,可能每天调用量达到上亿次!此时用长连接是最合适的,就是跟每个服务消费者维持一个长连接就可以,可能总共就 100 个连接。然后后面直接基于长连接 NIO 异步通信,可以支撑高并发请求。
24
24
@@ -30,21 +30,41 @@ dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian
30
30
31
31
![ dubbo-not-keep-connection] ( ./images/dubbo-not-keep-connection.png )
32
32
33
- - rmi 协议
33
+ - rmi 协议 ` rmi:// `
34
34
35
- 走 Java 二进制序列化, 多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
35
+ RMI 协议采用 JDK 标准的 java.rmi. \* 实现,采用阻塞式短连接和 JDK 标准序列化方式。 多个短连接,适合消费者和提供者数量差不多的情况,适用于文件的传输,一般较少用。
36
36
37
- - hessian 协议
37
+ - hessian 协议 ` hessian:// `
38
38
39
- 走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
39
+ Hessian 1 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。 走 hessian 序列化协议,多个短连接,适用于提供者数量比消费者数量还多的情况,适用于文件的传输,一般较少用。
40
40
41
- - http 协议
41
+ - http 协议 ` http:// `
42
42
43
- 走表单序列化。
43
+ 基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现。 走表单序列化。
44
44
45
- - webservice
45
+ - thrift 协议 ` thrift:// `
46
46
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 协议。
48
68
49
69
### dubbo 支持的序列化协议
50
70
You can’t perform that action at this time.
0 commit comments