一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 高并發服務器邏輯處理瓶頸,如何解決?

高并發服務器邏輯處理瓶頸,如何解決?

2019-12-29 21:45今日頭條IT實戰聯盟 服務器知識

并發,在操作系統中,是指一個時間段中有幾個程序都處于已啟動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。

并發,在操作系統中,是指一個時間段中有幾個程序都處于已啟動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。———來源《百科》

顧名思義,高并發就是在指定時間內,系統同時能夠處理大量的請求(連接數)。

那么如何衡量高并發呢?

高并發服務器邏輯處理瓶頸,如何解決?

高并發衡量指標

響應時間:系統對請求做出響應的時間,即一個http請求返回所用的時間;

吞吐量:單位時間內處理的請求數量;

QPS(TPS):每秒可以處理的請求數或事務數;

并發用戶數:同時承載正常使用系統功能的用戶數量,即多少人同時使用,系統還能正常運行的用戶數量;

根據上面衡量指標可以看到,提高并發能力必須解決如下幾個問題:

如何提高并發連接數?

那么多的連接數怎么進行業務處理?

應用服務器的處理水平又該怎么提高?

如何使用微服務架構提升高并發邏輯?

別著急,這么多問題我們一個一個來分析解決!

1)、如何提高并發連接數?

如下圖所示,常規的單一網絡連接模型只能1個連接對應1個線程,壓力都集中在內存,導致內存開銷非常大,肯定支撐的連接數有限!(直接掛掉)

高并發服務器邏輯處理瓶頸,如何解決?

單一網絡連接模型

有道是業務寫的再好不如一臺高性能服務器,這個鍋不一定要開發人員背的哦!!!服務器的連接入口就那么大(比如tomcat只有幾千的連接數),那么處理的能力也只局限于幾千。

怎么解決呢?選用合適的網絡IO模型或者selector,通過使用一個線程輪詢或者事件觸發的方式,能支持幾萬甚至更多的連接數,再配合上nginx做負載就更完美了。

2)那么多的連接數怎么進行業務處理?

大家都知道nginx只是具有反向代理和負載均衡的功能,并不能處理具體的業務邏輯,不能擔當應用服務器來使用。例如webSphere 、tomcat和jetty等,但是我們可以利用nginx將接受到的大量連接通過均衡的方式(輪詢,權重,hash)分配到不同的應用服務器中進行業務處理!

高并發服務器邏輯處理瓶頸,如何解決?

nginx負載

3)應用服務器的處理水平又該怎么提高?

要提高應用服務器的處理水平就要了解自己的應用服務器的瓶頸在哪里,一般有兩個:

數據庫壓力:數據庫是支撐產品業務的核心模塊,系統的高并發的主要壓力也是來源于數據庫。處理方式有如下這些:

數據庫本身:建立有效索引、讀寫分離、雙主互備、分庫分表(sharding-jdbc等實現)等策略,提高數據庫處理能力,減少壓力!

結合內存數據庫:例如redid、memcached等,根據業務需要緩存一些數據字典、枚舉變量和頻繁使用數據等減少數據庫訪問次數,提升數據庫處理能力。

高并發服務器邏輯處理瓶頸,如何解決?

web集群架構圖

如上圖web集群架構圖所示:

用nginx負載多臺應用服務器;

使用redid/memcached做業務緩存;

再加上數據庫集群;

組成了經典的web高并發集群架構。

代碼中的業務邏輯:

大家可以 參考阿里巴巴java開發手冊 中的開發規范來做就好了,總代來說少創建線程、少創建對象、少加鎖、防止死鎖、少創建線程、注意內存回收等策略,來提升代碼性能。

開發中可以采用前后端分離的架構模式,動靜分離、松耦合等提升前后端處理能力。

4)如何使用微服務架構提升高并發邏輯?

先看一下非常火的這張微服務架構圖:

高并發服務器邏輯處理瓶頸,如何解決?

微服務架構圖

主要包含11大核心組件,分別是:

核心支撐組件

服務網關Zuul

服務注冊發現Eureka+Ribbon

服務配置中心Apollo

認證授權中心Spring Security OAuth

服務框架Spring MVC/Boot

監控反饋組件

數據總線Kafka

日志監控ELK

調用鏈監控CAT

Metrics監控KairosDB

健康檢查和告警ZMon

限流熔斷和流聚合Hystrix/Turbine

總結

出來上述幾點解決高并發服務器邏輯處理瓶頸外,還要考慮網絡因素,例如采用CDN加速,將不同地點的請求分發到不同的服務集群上,避免網絡對速度的影響!

總之,根據自身實際業務在合理范圍內盡可能的拆分,拆分以后同類服務可以通過水平擴展達到整體的高性能高并發,同時將越脆弱的資源放置在鏈路的越末端,訪問的時候盡量將訪問鏈接縮短,降低每次訪問的資源消耗。服務之間直接restful模型使用http調用,或者redis,kafka類的消息中間件通信。單個服務直接使用nginx做負載集群,同時前后端分離,數據庫分庫分表等一整套分布式服務系統!

高并發服務器邏輯處理瓶頸,如何解決?

前后端分離前后端分離

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一级毛片国语版 | 精品亚洲午夜久久久久 | 欧美3p大片在线观看完整版 | 粉嫩国产14xxxxx0000 | 毛片在线免费观看网站 | 女人特黄大aaaaaa大片 | 99久久精品免费观看区一 | 国内精品中文字幕 | 天堂漫画破解版 | 欧美日韩精品一区二区三区视频在线 | 亚洲精品久久中文字幕 | 日本一片免费观看高清完整 | 国产精品一级片 | 日韩精品一二三区 | 午夜久久精品 | 青草视频免费观看在线观看 | 青青国产成人久久激情911 | 91久久偷偷做嫩草影院电 | 极品美女穴 | 男女男精品网站 | 成年人视频在线免费看 | 麻豆网| 国产精品视频一区二区三区经 | 亚洲天堂中文字幕 | 亚洲va天堂va国产va久久 | 隔壁老王国产精品福利 | 唯美 清纯 另类 亚洲制服 | 久久99精品涩AV毛片观看 | 国产成人激情视频 | 亚洲免费网站在线观看 | 热门小说同人h改编h | 好男人免费高清在线观看2019 | 幻女free性zozo交体内谢 | 天天天综合网 | 亚洲AV午夜福利精品香蕉麻豆 | 四虎在线精品观看免费 | 国产精品不卡高清在线观看 | 国产精品成人免费福利 | 欧美视频一区二区三区四区 | 国产探花在线观看 | 日本动漫打扑克动画片樱花动漫 |