bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

后臺服務器框架中的瑞士軍刀——MCP

后臺服務器框架中的瑞士軍刀——MCP
上篇介紹了一個簡單的UDP服務框架,但是面對海量的請求,同步框架顯然有點力不從心。于是在我接手好友系統(tǒng)的接口服務的時候,就采用了一個強大的異步框架——MCP框架。

我們提供的服務有:成都做網(wǎng)站、成都網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、山亭ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的山亭網(wǎng)站制作公司

MCP框架是一個多進程異步框架,支持UDP、TCP和http,結(jié)構很靈活,可以根據(jù)需要將各組件像搭積木一樣組裝。下面是MCP最基礎的進程結(jié)構。分為3種進程:CCD、MCD和DCC。
后臺服務器框架中的瑞士軍刀——MCP

CCD是面向客戶端的進程,是服務的入口,負責處理前端的請求,維護連接,收發(fā)數(shù)據(jù),并向MCD轉(zhuǎn)發(fā)。其內(nèi)部使用線程池實現(xiàn)對TCP請求的listen和accept。服務器內(nèi)部進程之間使用flow(實際上是一個數(shù)字)來表示連接,因此CCD負責維護前端請求句柄和flow之間的映射關系。CCD一般根據(jù)端口和協(xié)議設置多個。

DCC是面向后端的進程,負責向其他服務發(fā)出請求。使用跟CCD類似實現(xiàn)方法,只是面向的是服務器。在經(jīng)過協(xié)程改造的MCP框架中,DCC被去掉了,因為MCD通過協(xié)程就可以實現(xiàn)與后端的交互了。DCC跟后端的連接一般采用長連接,避免頻繁創(chuàng)建和釋放連接導致大量TIME_WAIT的情況。

MCD是服務器的核心進程,負責處理業(yè)務邏輯,通過epoll和回調(diào)函數(shù)實現(xiàn)異步。

進程之間通過MQ進行通信,MQ采用共享內(nèi)存隊列傳輸數(shù)據(jù),而通過管道傳輸讀寫信號。如下圖所示,進程首先把數(shù)據(jù)寫入隊列,當隊列中的數(shù)據(jù)達到一定長度(避免每個請求都讀取數(shù)據(jù))時,MQ會通過管道傳輸一個字符。MQ的使用者只要通過epoll監(jiān)聽管道句柄,就可以及時地獲得讀寫信號。

后臺服務器框架中的瑞士軍刀——MCP

了解了MCP的基本原理,就可以根據(jù)業(yè)務的需要進程個性化的定制。例如因為MCD單進程可能有性能瓶頸,我們對其進行了擴展,改造成多MCD進程版本。如圖所示,MCD后端派生出多個SUBMCD進程,SUBMCD進程負責處理真正的業(yè)務邏輯;而MCD進程退化成一個業(yè)務分發(fā)的程序,同時負責一些公共的業(yè)務邏輯,例如負責管理全局哈希表數(shù)據(jù)的超時清理(定期掃描超時節(jié)點,表太大的情況可以分次掃描,只要保持好掃描位置信息即可)。
后臺服務器框架中的瑞士軍刀——MCP

SUBMCD直接跟CCD和DCC通信(圖中省略了SUBMCD和CCD之間的MQ),通過配置文件設置,在服務初始化的時候就在各個需要通信的進程間創(chuàng)建好共享內(nèi)存MQ。這樣可以避免MCD成為通信瓶頸。

另外還派生出一個MONITOR進程,負責日志的收集和輸出,還可以做其他一些耗時的操作,避免業(yè)務進程阻塞。

MCP框架兼有功能強大和性能卓越的優(yōu)點。具體壓測數(shù)據(jù)不太記得,在一個數(shù)據(jù)包轉(zhuǎn)發(fā)服務中,QPS也在30W+。在使用上,有一定的學習成本,但是適用面非常廣,可以說一個框架走天下。

文章標題:后臺服務器框架中的瑞士軍刀——MCP
URL地址:http://vcdvsql.cn/article44/gjeiee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站搜索引擎優(yōu)化電子商務用戶體驗網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設