中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

最好看免費(fèi)觀看高清大全城中之城上海關(guān)鍵詞優(yōu)化排名哪家好

最好看免費(fèi)觀看高清大全城中之城,上海關(guān)鍵詞優(yōu)化排名哪家好,怎么做蘋(píng)果手機(jī)網(wǎng)站首頁(yè),南昌響應(yīng)式網(wǎng)站建設(shè)文章目錄 1.異步1.1 調(diào)用異步1.2 流程異步1.3 數(shù)據(jù)流異步1.4 小結(jié) 2.并發(fā)2.1 請(qǐng)求并發(fā)2.2 冗余請(qǐng)求2.3 小結(jié) 參考文獻(xiàn) 1.異步 對(duì)于處理耗時(shí)長(zhǎng)的任務(wù),如果采用同步等待的方式,會(huì)嚴(yán)重降低系統(tǒng)的吞吐量,可以采用異步化進(jìn)行解決。 異步&#xf…

文章目錄

  • 1.異步
    • 1.1 調(diào)用異步
    • 1.2 流程異步
    • 1.3 數(shù)據(jù)流異步
    • 1.4 小結(jié)
  • 2.并發(fā)
    • 2.1 請(qǐng)求并發(fā)
    • 2.2 冗余請(qǐng)求
    • 2.3 小結(jié)
  • 參考文獻(xiàn)

1.異步

對(duì)于處理耗時(shí)長(zhǎng)的任務(wù),如果采用同步等待的方式,會(huì)嚴(yán)重降低系統(tǒng)的吞吐量,可以采用異步化進(jìn)行解決。

異步(Asynchronous)是一種編程模型或執(zhí)行方式,在這種方式中,任務(wù)的啟動(dòng)和完成不是同步的,也就是說(shuō),程序不會(huì)在等待任務(wù)完成時(shí)阻塞,而是可以繼續(xù)執(zhí)行其他操作。當(dāng)異步任務(wù)完成時(shí),程序會(huì)通過(guò)回調(diào)、通知或事件的方式獲取結(jié)果或處理后續(xù)操作。

1.1 調(diào)用異步

異步調(diào)用發(fā)生在使用異步編程模型來(lái)提高代碼效率的時(shí)候,實(shí)現(xiàn)方式主要有:

  • Callback

異步回調(diào)通過(guò)注冊(cè)一個(gè)回調(diào)函數(shù),然后發(fā)起異步任務(wù),當(dāng)任務(wù)執(zhí)行完畢時(shí)會(huì)回調(diào)用戶注冊(cè)的回調(diào)函數(shù),從而減少調(diào)用端等待時(shí)間。這種方式會(huì)造成代碼分散難以維護(hù),定位問(wèn)題也相對(duì)困難。

  • Promise 和 Future

當(dāng)用戶提交一個(gè)任務(wù)時(shí)會(huì)立刻先返回一個(gè)Future,然后任務(wù)異步執(zhí)行,后續(xù)可以通過(guò) Future 獲取執(zhí)行結(jié)果。

JavaScript 中的 Promise 和 Java 中的 CompletableFuture 都是常見(jiàn)的異步處理方式。

// 使用 Promise 處理異步操作
let promise = new Promise((resolve, reject) => {// 模擬異步操作setTimeout(() => resolve('Operation complete'), 1000);
});promise.then(result => console.log(result));  // 輸出: "Operation complete"
  • Async/Await

Async/Await 是對(duì) Promise 的進(jìn)一步封裝,提供了更簡(jiǎn)潔、更易讀的異步代碼寫(xiě)法。使用 async 標(biāo)記的函數(shù)會(huì)返回一個(gè) Promise,而 await 關(guān)鍵字用于暫停函數(shù)的執(zhí)行,直到 Promise 處理完成。

JavaScript 和 Python 都支持 async/await 語(yǔ)法。

async function fetchData() {let response = await fetch('https://api.example.com/data');let data = await response.json();console.log(data);
}fetchData();
  • 事件驅(qū)動(dòng)

事件驅(qū)動(dòng)模型常用于 GUI 編程和服務(wù)器端編程,通過(guò)事件觸發(fā)異步操作的處理。

比如 Node.js 通過(guò)事件驅(qū)動(dòng)模型來(lái)處理異步 I/O 操作。

const EventEmitter = require('events');
const eventEmitter = new EventEmitter();// 定義事件處理程序
eventEmitter.on('dataReceived', (data) => {console.log('Data received:', data);
});// 模擬異步數(shù)據(jù)接收
setTimeout(() => eventEmitter.emit('dataReceived', 'Sample Data'), 1000);
  • CPS(Continuation-Passing Style)

可以對(duì)多個(gè)異步編程進(jìn)行編排,組成更復(fù)雜的異步處理,并以同步的代碼調(diào)用形式實(shí)現(xiàn)異步效果。

CPS 將后續(xù)的處理邏輯當(dāng)作參數(shù)傳遞給 Then 并可以最終捕獲異常,解決了異步回調(diào)代碼散亂和異常跟蹤難的問(wèn)題。Java 中的 CompletableFuture 和 C++ PPL(Parallel Patterns Library)基本支持這一特性。典型的調(diào)用形式如下:

void handleRequest(const Request &req) {return req.Read().Then([](Buffer &inbuf){return handleData(inbuf);}).Then([](Buffer &outbuf){return handleWrite(outbuf);}).Finally(){return cleanUp();});
}

關(guān)于 CPS 更多信息推薦閱讀:2018 中國(guó) C++ 大會(huì)的吳銳_C++服務(wù)器開(kāi)發(fā)實(shí)踐部分。

調(diào)用異步是一種異步編程模型,通過(guò)允許任務(wù)非阻塞地執(zhí)行,使程序在等待某些操作(如 I/O 操作)完成的同時(shí),能夠繼續(xù)處理其他任務(wù),從而提高并發(fā)性和性能。常見(jiàn)的實(shí)現(xiàn)方式包括回調(diào)函數(shù)、Promise/Future、Async/Await,以及事件驅(qū)動(dòng)模型等。

1.2 流程異步

一個(gè)業(yè)務(wù)流程往往伴隨著調(diào)用鏈路長(zhǎng)、后置依賴(lài)多等特點(diǎn),導(dǎo)致業(yè)務(wù)流程處理耗時(shí)長(zhǎng),降低了系統(tǒng)的可用性和并發(fā)處理能力。

同步改異步,可以降低主鏈路的處理耗時(shí)。

舉個(gè)例子,比如我們?nèi)?KFC 點(diǎn)餐,遇到排隊(duì)的人很多,當(dāng)點(diǎn)完餐后,大多情況下我們會(huì)隔幾分鐘就去問(wèn)好了沒(méi),反復(fù)去問(wèn)了好幾次才拿到,在這期間我們也沒(méi)法干活了。

這個(gè)就叫同步輪訓(xùn),這樣效率太低了。

服務(wù)員被問(wèn)煩了,就在點(diǎn)完餐后給我們一個(gè)號(hào)碼牌,每次準(zhǔn)備好了就會(huì)在服務(wù)臺(tái)叫號(hào),這樣我們就可以在被叫到的時(shí)候再去取餐,中途可以繼續(xù)干自己的事。這就叫異步。

當(dāng)一個(gè)微服務(wù)需要處理大量的請(qǐng)求或任務(wù)時(shí),直接處理這些任務(wù)可能導(dǎo)致服務(wù)壓力過(guò)大。通過(guò)消息隊(duì)列(如 Kafka、RabbitMQ、RocketMQ 等)對(duì)耗時(shí)的任務(wù)進(jìn)行異步化。

微服務(wù)將任務(wù)消息發(fā)送到消息隊(duì)列中,另一個(gè)處理服務(wù)從隊(duì)列中取出任務(wù)異步處理。這樣可以解耦服務(wù),提升系統(tǒng)的彈性和擴(kuò)展性。

1.3 數(shù)據(jù)流異步

處理大量實(shí)時(shí)數(shù)據(jù)流(如日志數(shù)據(jù)、傳感器數(shù)據(jù))。

使用流處理框架(如 Apache Flink、Spark Streaming)來(lái)異步處理數(shù)據(jù)流。數(shù)據(jù)被實(shí)時(shí)處理和分析,結(jié)果可以用于實(shí)時(shí)監(jiān)控和決策。

1.4 小結(jié)

在微服務(wù)架構(gòu)中,異步處理可以顯著提高系統(tǒng)的性能和擴(kuò)展性。通過(guò)異步編程模型、消息隊(duì)列、數(shù)據(jù)流異步處理,微服務(wù)可以更高效地處理并發(fā)請(qǐng)求、管理任務(wù)和優(yōu)化資源利用。異步編程不僅提升了系統(tǒng)的響應(yīng)速度,還增強(qiáng)了系統(tǒng)的靈活性和可擴(kuò)展性。

2.并發(fā)

在微服務(wù)架構(gòu)中,并發(fā)處理是提升系統(tǒng)性能和響應(yīng)能力的關(guān)鍵技術(shù)。并發(fā)使得系統(tǒng)能夠同時(shí)處理多個(gè)任務(wù)或請(qǐng)求,顯著提高吞吐量和資源利用率。

2.1 請(qǐng)求并發(fā)

如果一個(gè)任務(wù)需要處理多個(gè)子任務(wù),可以將沒(méi)有依賴(lài)關(guān)系的子任務(wù)并發(fā)化,這種場(chǎng)景在后臺(tái)開(kāi)發(fā)很常見(jiàn)。

如一個(gè)請(qǐng)求需要查詢 3 個(gè)數(shù)據(jù),分別耗時(shí) T1、T2、T3,如果串行調(diào)用總耗時(shí) T=T1+T2+T3。對(duì)三個(gè)任務(wù)執(zhí)行并發(fā),總耗時(shí) T=max(T1,T 2,T3)。同理,寫(xiě)操作也如此。對(duì)于同種請(qǐng)求,還可以同時(shí)進(jìn)行批量合并,減少 RPC 次數(shù)。

2.2 冗余請(qǐng)求

冗余請(qǐng)求指同時(shí)向后端服務(wù)發(fā)送多個(gè)同樣的請(qǐng)求,誰(shuí)響應(yīng)快就是使用誰(shuí),其他的則丟棄。

這種策略縮短了主調(diào)方的等待時(shí)間,但也使整個(gè)系統(tǒng)調(diào)用量猛增,一般適用于初始化或者請(qǐng)求少的場(chǎng)景。比如騰訊的移動(dòng)連通服務(wù)維納斯(WNS,Wireless Network Service)的跑馬模塊其實(shí)就是這種機(jī)制,跑馬模塊為了快速建立長(zhǎng)連接同時(shí)向后臺(tái)多個(gè) IP/Port 發(fā)起請(qǐng)求,誰(shuí)快就用誰(shuí),這在弱網(wǎng)的移動(dòng)設(shè)備上特別有用,如果使用等待超時(shí)再重試的機(jī)制,無(wú)疑將大大增加用戶的等待時(shí)間。

這種方式較少使用,知道即可。

2.3 小結(jié)

并發(fā)在微服務(wù)架構(gòu)中通過(guò)多線程/多進(jìn)程、異步 I/O、并行計(jì)算和流處理等方式,顯著提升了系統(tǒng)的處理能力和性能。它能夠有效地處理大量并發(fā)請(qǐng)求和數(shù)據(jù)流,優(yōu)化資源利用率,并提高系統(tǒng)的響應(yīng)速度和吞吐量。通過(guò)合理應(yīng)用并發(fā)技術(shù),微服務(wù)系統(tǒng)可以更好地應(yīng)對(duì)高負(fù)載和高并發(fā)的挑戰(zhàn)。


參考文獻(xiàn)

服務(wù)高并發(fā)、高性能、高可用實(shí)現(xiàn)方案- 楊豈

http://www.risenshineclean.com/news/36778.html

相關(guān)文章:

  • 怎么知道哪家公司網(wǎng)站做的好網(wǎng)站買(mǎi)賣(mài)交易平臺(tái)
  • 網(wǎng)絡(luò)組建設(shè)計(jì)與方案網(wǎng)站seo 優(yōu)化
  • jquery 特效 網(wǎng)站網(wǎng)絡(luò)推廣公司是干什么
  • 廣西住房城鄉(xiāng)建設(shè)廳官網(wǎng)站大數(shù)據(jù)培訓(xùn)班出來(lái)能就業(yè)嗎
  • 網(wǎng)站頁(yè)面數(shù)量開(kāi)發(fā)網(wǎng)站的公司
  • 做網(wǎng)站圖片怎么弄一個(gè)自己的網(wǎng)站
  • 河北網(wǎng)站開(kāi)發(fā)費(fèi)用百度電話人工服務(wù)
  • 做門(mén)窗接活的網(wǎng)站廣告投放渠道
  • 做我女朋友好不好套路網(wǎng)站seo高級(jí)優(yōu)化技巧
  • 做局域網(wǎng)網(wǎng)站公司網(wǎng)站怎么弄
  • 家居企業(yè)網(wǎng)站建設(shè)如何豬八戒網(wǎng)接單平臺(tái)
  • 廣州 企業(yè)網(wǎng)站建設(shè)百度貼吧怎么做推廣
  • 新興建設(shè)網(wǎng)站頭條指數(shù)
  • 小型手機(jī)網(wǎng)站建設(shè)哪家好百度視頻
  • 收?qǐng)D片的網(wǎng)站企業(yè)培訓(xùn)計(jì)劃方案
  • 三亞網(wǎng)站建設(shè)介紹首頁(yè)
  • 怎么做網(wǎng)盤(pán)搜索引擎網(wǎng)站抖音怎么推廣
  • 網(wǎng)站設(shè)計(jì)第一步怎么做今日國(guó)內(nèi)新聞10則
  • 站長(zhǎng)平臺(tái)有哪些百度平臺(tái)營(yíng)銷(xiāo)軟件
  • 建筑專(zhuān)業(yè)網(wǎng)站文明seo技術(shù)教程網(wǎng)
  • wordpress 添加icp舟山百度seo
  • 網(wǎng)站右邊跳出的廣告怎么做可以推廣的軟件有哪些
  • 惠民網(wǎng)站建設(shè)淺議網(wǎng)絡(luò)營(yíng)銷(xiāo)論文
  • 休閑旅游產(chǎn)品營(yíng)銷(xiāo)網(wǎng)站的建設(shè)策略app運(yùn)營(yíng)
  • 深圳高端網(wǎng)站開(kāi)發(fā)網(wǎng)絡(luò)營(yíng)銷(xiāo)的優(yōu)勢(shì)有哪些?
  • 外貿(mào)網(wǎng)站推廣實(shí)操手冊(cè)2023年新聞小學(xué)生摘抄
  • 怎么建立自己的網(wǎng)站平臺(tái)多少錢(qián)南寧seo優(yōu)化公司排名
  • 黃江鎮(zhèn)做網(wǎng)站在線生成個(gè)人網(wǎng)站源碼
  • 自己做網(wǎng)站 發(fā)布視頻北京自動(dòng)seo
  • 建設(shè)部舉報(bào)網(wǎng)站西安網(wǎng)站建設(shè)方案優(yōu)化