|
|
@ -66,7 +66,7 @@ async fn main() {
|
|
|
|
|
|
|
|
|
|
|
|
在这种模式下,只需要建立一条连接,然后由一个统一的任务来管理 `client` 和该连接,这样之前的 `get` 和 `set` 请求也将不存在资源共享的问题。
|
|
|
|
在这种模式下,只需要建立一条连接,然后由一个统一的任务来管理 `client` 和该连接,这样之前的 `get` 和 `set` 请求也将不存在资源共享的问题。
|
|
|
|
|
|
|
|
|
|
|
|
同时,`P1` 和 `C1` 进行通信的消息通道是有缓冲的,当大量的消息发送给 `C1` 时,首先会放入消息通道的缓冲区中,当 `C1` 处理完一条消息后,再从该缓冲区中取出下一条消息进行处理,这种方式跟消息队列( mq ) 非常类似,可以实现更高的吞吐。而且这种方式还有利于实现连接池,例如不止一个 `P` 和 `C` 时,多个 `P` 可以往消息通道中发送消息,同时多个 `C`,其中每个 `C` 都维护一条连接,并从消息通道获取消息。
|
|
|
|
同时,`P1` 和 `C1` 进行通信的消息通道是有缓冲的,当大量的消息发送给 `C1` 时,首先会放入消息通道的缓冲区中,当 `C1` 处理完一条消息后,再从该缓冲区中取出下一条消息进行处理,这种方式跟消息队列( Message queue ) 非常类似,可以实现更高的吞吐。而且这种方式还有利于实现连接池,例如不止一个 `P` 和 `C` 时,多个 `P` 可以往消息通道中发送消息,同时多个 `C`,其中每个 `C` 都维护一条连接,并从消息通道获取消息。
|
|
|
|
|
|
|
|
|
|
|
|
## Tokio 的消息通道( channel )
|
|
|
|
## Tokio 的消息通道( channel )
|
|
|
|
|
|
|
|
|
|
|
|