学无先后,达者为师

网站首页 编程语言 正文

什么是 Reactor 模式?

作者:暗诺星刻 更新时间: 2022-05-11 编程语言

什么是 Reactor 模式?

  Reactor 模式并不是什么很神秘的东西。一般来说,通信有以下两个关键步骤:一是建立连接,二是进行数据的传输。一般对通信过程进行优化,也就是基于这两个关键点进行优化。

  建立连接通常就是 握手 的过程。在向对方传输数据之前,必须要经对方同意,这就是握手。如果建立连接就不成功,后面的数据传输也不能进行。对于服务端来讲,它需要与众多客户端通信,建立连接的成功数将影响它的吞吐量。对于服务端,当然是希望它的吞吐量越高越好。我们知道数据传输通常相对更耗时,为了避免对建立连接造成影响,最好是让服务端使用一个与数据传输不同的线程来完成建立连接的工作。

  对于服务端来讲,它需要与众多客户端通信。如果正好需要与多个客户端同时进行数据传输,就只能开启多个线程来完成,且线程数与连接数相等。如果线程数小于连接数,则有些客户端需要等待。

  Reactor 模式就是基于建立连接与具体服务之间线程分离的模式。在 Reactor 模式中,会有一个线程(负责与所有客户端建立连接,这个线程通常称之为 Reactor。然后在建立连接之后,Reactor 线程会使用其它线程(可以有多个)来处理与每一个客户端之间的数据传输,这个(些)线程通常称之为 Handler。

  由于服务端需要与多个客户端通信,它的通信是一对多的关系,所以它需要使用 Reactor 模式。对客户端,它只需要与服务端通信,它的通信是一对一的关系,所以它不需要使用 Reactor 模式。也就是说,对客户端来讲,它不需要进行建立连接与传输数据之间的线程分离。

原文链接:https://blog.csdn.net/wangpaiblog/article/details/124580590

栏目分类
最近更新