成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

java怎么處理高并發(fā) 高并發(fā)用消息隊(duì)列會(huì)延遲,還有什么好方法解決?

高并發(fā)用消息隊(duì)列會(huì)延遲,還有什么好方法解決?首先,您需要知道隊(duì)列的應(yīng)用場(chǎng)景在哪里。一般來說,當(dāng)后臺(tái)需要大量的邏輯處理或計(jì)算資源時(shí),隊(duì)列也可以改善前端的用戶體驗(yàn)。例如:微博-關(guān)注/粉絲。如果你有1000

高并發(fā)用消息隊(duì)列會(huì)延遲,還有什么好方法解決?

首先,您需要知道隊(duì)列的應(yīng)用場(chǎng)景在哪里。一般來說,當(dāng)后臺(tái)需要大量的邏輯處理或計(jì)算資源時(shí),隊(duì)列也可以改善前端的用戶體驗(yàn)。例如:微博-關(guān)注/粉絲。如果你有1000個(gè)粉絲,你發(fā)一個(gè)微博,1000個(gè)粉絲就會(huì)收到你的消息。消息隊(duì)列適合這種情況。原因:1。推送1000個(gè)動(dòng)態(tài)數(shù)據(jù)是一個(gè)耗時(shí)的操作,發(fā)送微博頁面需要盡快響應(yīng),這樣就可以將任務(wù)放入隊(duì)列中。微博發(fā)送后,會(huì)立即生效,但允許粉絲延遲接收微博,通過隊(duì)列實(shí)現(xiàn)也滿足需求;3.隊(duì)列處理可以采用高性能集群架構(gòu)。架構(gòu)實(shí)現(xiàn)了關(guān)注點(diǎn)的分離,系統(tǒng)擴(kuò)展更加靈活

如果需要根據(jù)數(shù)據(jù)量和業(yè)務(wù)復(fù)雜度綜合評(píng)估硬件級(jí)別,建議購買兩臺(tái)云主機(jī)(4核8g內(nèi)存)構(gòu)建集群環(huán)境。之后將根據(jù)實(shí)際需要進(jìn)行擴(kuò)建。

軟件級(jí)別:

1。如果是寫操作,應(yīng)該:

1.1使用消息隊(duì)列進(jìn)行異步處理(如ActiveMQ等),避免消息阻塞

1.2使用mongodb的批寫功能,如每1000條數(shù)據(jù)寫一次

2。Mongodb以集群方式部署,可以分散壓力

3。如果是讀操作,可以考慮添加redis來緩存熱數(shù)據(jù)

消息中間件不會(huì)丟失消息,主要從以下幾個(gè)方面來考慮

1。生產(chǎn)者關(guān)閉

情況是這樣的,在你的生產(chǎn)的同時(shí),生產(chǎn)者必須將消息推送到消息中間件進(jìn)行異步處理。此時(shí),如果生產(chǎn)者掛斷,消息數(shù)據(jù)將不會(huì)被推入消息中間件,并且會(huì)發(fā)生數(shù)據(jù)不一致。

在生產(chǎn)者推送之后,將標(biāo)志位設(shè)置為已交付。另外,啟動(dòng)一個(gè)計(jì)時(shí)任務(wù)來檢測(cè)是否有消息未被傳遞,并確保消息數(shù)據(jù)將進(jìn)入中間件。

2. 消息重試

消息中間件存儲(chǔ)在磁盤上。存儲(chǔ)在磁盤上的消息不會(huì)丟失,磁盤文件也會(huì)備份。如果丟失了一個(gè),可以通過備份文件來恢復(fù)。

同樣,會(huì)導(dǎo)致重復(fù)消費(fèi),這就需要考慮消費(fèi)的冪等性,可以做消費(fèi)記錄,防止重復(fù)消費(fèi)。