網站制作同步擴展,還是異步擴展?

2022-04-14    分類: 網站制作

現在我們理解了同步調用和異步調用之間的區別。為什么要了解它們呢?答案在可擴展性當中。如果過度使用同步調用,或者使用不當,會給系統造成過度的負擔,妨礙它擴展。讓我們維續使用那個query exec的例子,嘗試執行一個用戶查詢。如果根據以下理由,即(1)監控很重要,(2)監控方法運行得很快,(3)最壞的情況不過是用戶查詢變慢了,我們實現了兩個同步調用的監控方法。這些理由雖然意圖是好的,但它們卻是錯誤的。如前所述,雖然監控很重要,但是也沒有返回給用戶的查詢結果重要。當被監控的數據庫在運行時,監控方法也許運行得很快,但是當發生了硬件故障,或者被監控數據庫不能訪問時,又會怎樣呢?這樣來,監控查詢就會被堆積起來,等待超時。

這也就意味著用戶的查詢會被阻塞,等待監控查詢完成,從而導致用戶查詢堆積起來。當用戶查詢變慢或者暫時停止等待超時時,它仍然會占用一個用戶數據庫的數據庫連接,而且應用服務器上執行的線程依然會消耗服務器上的內存。隨著越來越多的用戶線程開始停止,等待它們的監控調用超時,用戶數據的連接數可能會被耗盡,這樣其他非監控類的查詢就不能再連接到用戶數據庫上。并且應用服務器上的線程需要把數據寫回硬盤來釋放內存,這樣就會造成服務器上的內存交換。這種交換會使所有的處理變慢,還可能會使應用服務器的TCP堆棧達到上限,以致拒絕之后的連接。最后,新的用戶請求將得不到處理,用戶只能坐等瀏覽器或應用超時。從本質上來說,你的應用或平臺已經停止工作了。如你所見,究竟是采用同步調用還是異步調用,這樣-一個小疏忽就會輕松地造成一系列糟糕的事件。 這個場景當中最精糕的一點在于,造成問題的根本原因很隱蔽。由于我們是逐步探討了這一系列事件,所以要理解問題所在相對比較容易,但如果系統的癥狀表現為系統載人Web頁面開始變慢,在接下來的15分鐘內,這種情況越來越嚴重,直到最后整個系統停止了運行,要診斷這個問題是非常困難的。或許你有足夠的監控信息來幫助你診斷這些類型的問題,但是當你的站點停機了,而你又急于讓它恢復服務時,要搞清楚這一系列事件的真相是倍有壓力的。
盡管使用同步調用不當或過度會造成問題,但方法調用還是常常采用同步方式實現。為什么會這樣?答案在于,同步調用比異步調用簡單。你或許會補充說,“等等,同步調用的確更簡單一些,不過更經常情況的是,我們的某些方法需要其他的方法先被調用才能成功完成。因此,我們不能在系統中使用大量的異步調用”。是的,的確如此。許多時候,你的確需要等待被調用的方法完成,并需要知道某些狀態才能讓線程繼續運行。我們不是要告訴你所有的同步調用都不好,事實上,許多同步調用都是必需的,它們會讓開發人員的日子簡單得多。但也有許多時候,即使存在上述的依賴性,也是可以使用異步調用,并且應該使用異步調用來代替同步調用的。如果主線程不太關心被調用的線程是否完成了,例如監控調用,那么只需用一個簡單的異步調用即可。如果你需要被調用的線程提供一些信息, 又不想妨礙主線程的執行,那么可以采用回調來獲取這些信息。關于回調的詳細介紹已經不在本書的范圍之內了。回調功能的一個示例是,操作系統中用于報告硬件狀況的中斷處理例程。
異步協調
原方法與被調用的方法之間的異步協調和通信需要一種機制,以便原方法確認被調用的方法何時執行完畢或者是否執行完畢了。回調是一種方法,它們會以參數的形式傳遞給其他方法,
以便去除代碼中不同層之間的耦合。在C和C+中,這是通過函數指針實現的;在Java中, 則是通過對象引用實現的。有許多設計模式都使用了回調,例如委托設計模式和觀察者設計模式。高層的進程會充當低層的客戶,通過傳遞引用來調用低層的方法。一個回調方法被調用的示例可以是像文件系統改變這樣的同步事件。
在.NET框架中,異步通信的特征是使用了BeginBlah,其中Blah就是該方法的同步版本的名字。判斷一個異步調用是否完成了的方法有四種:
第一種是輪詢(IsCompleted屬性);
第二種是回調方法Delegate;
第三種是方法AsyncWaitHandle,等待調用完成;第四種是方法EndBlah,也是等待調用完成。
不同的語言提供了不同的方案來解決異步通信和協調問題。你需要了解你的語言和框架提供了什么解決方案,這樣才能在需要的時候實現它們。
在上段中我們說過網站制作同步調用簡單,因此使用同步調用的情況比使用異步調用的I彩得名。雖然這是事實,但它只是工程師忽視了同步調用的影響的部分原因。另部分原因是開發人員通常只看到小部分。在一個組織中,只有非常少的幾個人能夠覽應用的全貌。你的架構師肯定應該他看到個局的應川,同樣地,管理團隊應該也可以看到。你必須依靠他們來解決難題,并解釋同步調川會造成哪些擴展問題。

標題名稱:網站制作同步擴展,還是異步擴展?
文章轉載:http://m.kartarina.com/news/145639.html

網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站制作

廣告

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

網站優化排名
主站蜘蛛池模板: 69堂人成无码免费视频果冻传媒 | 国产成人无码av在线播放不卡| 亚洲Av无码精品色午夜| 久久久久亚洲AV无码永不| 久久久久亚洲AV无码去区首| 亚洲中文字幕无码不卡电影| 黑人巨大无码中文字幕无码 | 性色av无码免费一区二区三区 | 无码人妻熟妇AV又粗又大| 亚洲人成无码网站在线观看| 在线观看片免费人成视频无码| 久久久国产精品无码一区二区三区 | 国产精品99久久久精品无码| 性色av极品无码专区亚洲| 久久亚洲精品成人无码网站| 亚洲精品无码不卡在线播放HE| 国产精品白浆在线观看无码专区| 98久久人妻无码精品系列蜜桃| 亚洲AV无码乱码在线观看裸奔 | 中文字幕无码亚洲欧洲日韩| 国产在线无码不卡影视影院 | 无码人妻精品中文字幕免费| 无码专区国产精品视频| 无码熟妇人妻AV在线影院| 亚洲Av无码一区二区二三区| 无码h黄动漫在线播放网站| 亚洲欧洲美洲无码精品VA| 精品无码国产自产拍在线观看蜜| 无码人妻精品一区二区三区9厂 | 亚洲无码黄色网址| 国产乱人伦无无码视频试看| 精品久久久久久无码中文字幕一区| 91精品日韩人妻无码久久不卡| 久久久无码中文字幕久...| 亚洲精品无码鲁网中文电影| 亚洲国产无套无码av电影| 久久久亚洲精品无码| 精品人妻系列无码天堂| 久久精品无码午夜福利理论片 | 成人无码AV一区二区| 成人av片无码免费天天看|