網站首頁 編程語言 正文
什么是 Reactor 模式?
??Reactor 模式并不是什么很神秘的東西。一般來說,通信有以下兩個關鍵步驟:一是建立連接,二是進行數據的傳輸。一般對通信過程進行優化,也就是基于這兩個關鍵點進行優化。
??建立連接通常就是 握手
的過程。在向對方傳輸數據之前,必須要經對方同意,這就是握手。如果建立連接就不成功,后面的數據傳輸也不能進行。對于服務端來講,它需要與眾多客戶端通信,建立連接的成功數將影響它的吞吐量。對于服務端,當然是希望它的吞吐量越高越好。我們知道數據傳輸通常相對更耗時,為了避免對建立連接造成影響,最好是讓服務端使用一個與數據傳輸不同的線程來完成建立連接的工作。
??對于服務端來講,它需要與眾多客戶端通信。如果正好需要與多個客戶端同時進行數據傳輸,就只能開啟多個線程來完成,且線程數與連接數相等。如果線程數小于連接數,則有些客戶端需要等待。
??Reactor 模式就是基于建立連接與具體服務之間線程分離的模式。在 Reactor 模式中,會有一個線程(負責與所有客戶端建立連接,這個線程通常稱之為 Reactor。然后在建立連接之后,Reactor 線程會使用其它線程(可以有多個)來處理與每一個客戶端之間的數據傳輸,這個(些)線程通常稱之為 Handler。
??由于服務端需要與多個客戶端通信,它的通信是一對多的關系,所以它需要使用 Reactor 模式。對客戶端,它只需要與服務端通信,它的通信是一對一的關系,所以它不需要使用 Reactor 模式。也就是說,對客戶端來講,它不需要進行建立連接與傳輸數據之間的線程分離。
原文鏈接:https://blog.csdn.net/wangpaiblog/article/details/124580590
相關推薦
- 2022-12-26 React?tabIndex使非表單元素支持focus和blur事件_React
- 2022-07-24 Android?Studio工程導入及坑的解決_Android
- 2023-10-15 el-popover彈窗修改三角樣式或者位置
- 2022-11-29 React?props全面詳細解析_React
- 2023-07-09 關于 axios 是什么?以及怎么用?
- 2022-11-02 react父組件更改props子組件無法刷新原因及解決方法_React
- 2022-07-12 springboot整合jasypt加密yml配置文件
- 2023-02-05 Python實現自定義包的實例詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支