- 通讯模式
| 通讯模式 | ||
|---|---|---|
| 简单模式(Simple RPC) | 这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,这和大家平时熟悉的RPC没有什么大的区别,所以不再详细介绍。 | 简单的一请求马上回应的模式,例如现在的http请求 |
| 服务端数据流模式(Server-side streaming RPC) | 这种模式是客户端发起一次请求,服务端返回一段连续的数据流。典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端。 | 客户端发起请求后,就服务端就可以不断的像客户端发送消息,固定在某一个函数,该函数要作循环读取服务端发来的消息 |
| 客户端数据流模式(Client-side streaming RPC) | 与服务端数据流模式相反,这次是客户端源源不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。典型的例子是物联网终端向服务器报送数据。 | 客户端向服务端请求后,客户端可以利用这次请求不断的向服务端发送消息 |
| 双向数据流模式(Bidirectional streaming RPC) | 顾名思义,这是客户端和服务端都可以向对方发送数据流,这个时候双方的数据可以同时互相发送,也就是可以实现实时交互。典型的例子是聊天机器人。 | 客户端向服务端请求后,客户端可以不断的向服务端发送消息,服务端也可以不断的像客户端发送消息 |
以上通讯模式和普通的双向消息有一点不一样,他们的方向都是基于函数,这个设计很方便开发,但是有一点就是服务端的性能消耗的问题,综合分析起来基本是没有什么消耗,和普通消息模式一样,甚至优于普通的消息模式。
