分布式消息服務(wù)DMS如何實(shí)現(xiàn)死信消息的消費(fèi)

分布式消息服務(wù)DMS如何實(shí)現(xiàn)死信消息的消費(fèi),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的宿城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

死信消息是什么

死信消息是指無(wú)法被正常消費(fèi)的消息。分布式消息服務(wù)DMS支持對(duì)消息進(jìn)行異常處理。當(dāng)消息進(jìn)行多次重復(fù)消費(fèi)仍然失敗后,DMS會(huì)將該條消息轉(zhuǎn)存到死信隊(duì)列中,有效期為72小時(shí),用戶(hù)可以根據(jù)需要對(duì)死信消息進(jìn)行重新消費(fèi)。消費(fèi)死信消息時(shí),只能消費(fèi)該消費(fèi)組產(chǎn)生的死信消息。全局有序的普通隊(duì)列的死信消息依然按照先入先出(FIFO)的順序存儲(chǔ)在死信隊(duì)列中。

如何消費(fèi)死信消息

消費(fèi)指定消費(fèi)組產(chǎn)生的死信消息??赏瑫r(shí)消費(fèi)多條消息,每次消費(fèi)的消息負(fù)載不超過(guò)512KB。僅NORMAL隊(duì)列和FIFO隊(duì)列可以開(kāi)啟死信消息,因?yàn)橹挥蠳ORMAL隊(duì)列和FIFO隊(duì)列可消費(fèi)死信消息。

URI

GET /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters?max_msgs={max_msgs}&time_wait={time_wait}&ack_wait={ack_wait}

參數(shù)說(shuō)明請(qǐng)參見(jiàn)下表:

名稱(chēng)

類(lèi)型

是否必選

說(shuō)明

取值范圍

project_id

string

項(xiàng)目ID。

N/A

queue_id

string

指定的隊(duì)列ID。

N/A

consumer_group_id

String

消費(fèi)組的ID。從查看指定隊(duì)列的所有消費(fèi)組的響應(yīng)消息中獲取消費(fèi)組ID。

N/A

max_msgs

int

獲取可消費(fèi)的死信消息的條數(shù)。

說(shuō)明:

單次消費(fèi)返回的消息數(shù)量可能會(huì)少于指定條數(shù),但多次消費(fèi)最終可獲取全部消息。

取值范圍:1~10。

默認(rèn)值:10

time_wait

int

設(shè)定消費(fèi)組中可消費(fèi)的死信為0時(shí)的讀取消息等待時(shí)間。

如果在等待時(shí)間內(nèi)有新的死信消息,則立即返回消費(fèi)結(jié)果,如果等待時(shí)間內(nèi)沒(méi)有新的死信消息,則到等待時(shí)間后返回消費(fèi)結(jié)果。

取值范圍:1~60s

默認(rèn)值:3s

說(shuō)明:不帶該參數(shù)或者配置為空,都默認(rèn)為3s。

ack_wait

int

commit提交超時(shí)時(shí)間,在該時(shí)間內(nèi)提交確認(rèn),確認(rèn)有效,如果超過(guò)指定時(shí)間,系統(tǒng)會(huì)報(bào)消息確認(rèn)超時(shí),或handler無(wú)效。

取值范圍:15~300s

默認(rèn)值:30s

說(shuō)明:不帶該參數(shù)或者配置為空,都默認(rèn)為30s。

響應(yīng)參數(shù)

參數(shù)

類(lèi)型

描述

message

JSON對(duì)象

消息的內(nèi)容

handler

string

消息handler

message參數(shù)

參數(shù)

類(lèi)型

描述

body

JSON

消息體的內(nèi)容。

attributes

JSON對(duì)象

屬性的列表。

 

 

如何確認(rèn)已消費(fèi)死信消息

在消費(fèi)者消費(fèi)死信消息期間,死信消息仍然停留在隊(duì)列中,但死信消息從被消費(fèi)開(kāi)始的30秒內(nèi)不能被該消費(fèi)組再次消費(fèi),若在這30秒內(nèi)沒(méi)有被消費(fèi)者確認(rèn)消費(fèi),則DMS認(rèn)為死信消息未消費(fèi)成功,將可以被繼續(xù)消費(fèi)。

如果死信消息被確認(rèn)消費(fèi)成功,該死信消息將不能被該消費(fèi)組再次消費(fèi),死信消息的保留時(shí)間為72小時(shí)(除非消費(fèi)組被刪除),72小時(shí)后會(huì)被刪除。

消息批量消費(fèi)確認(rèn)時(shí),必須嚴(yán)格按照消息消費(fèi)的順序提交確認(rèn),DMS按順序判定消息是否消費(fèi)成功,如果某條消息未確認(rèn)或消費(fèi)失敗,則不再繼續(xù)檢測(cè),默認(rèn)后續(xù)消息全部消費(fèi)失敗。建議當(dāng)對(duì)某一條消息處理失敗時(shí),不再需要繼續(xù)處理本批消息中的后續(xù)消息,直接對(duì)已正確處理的消息進(jìn)行確認(rèn)。

注意,僅NORMAL隊(duì)列和FIFO隊(duì)列可以開(kāi)啟死信消息,因?yàn)橹挥蠳ORMAL隊(duì)列和FIFO隊(duì)列可消費(fèi)死信消息。

URI

POST /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters/ack

參數(shù)說(shuō)明請(qǐng)參見(jiàn)下表:

名稱(chēng)

類(lèi)型

是否必選

說(shuō)明

project_id

string

項(xiàng)目ID。

queue_id

string

隊(duì)列ID。

consumer_group_id

string

消費(fèi)組ID。

 

請(qǐng)求參數(shù)和message參數(shù)如下表所示:

名稱(chēng)

類(lèi)型

是否必選

說(shuō)明

message

array

確認(rèn)消息數(shù)組。

 

名稱(chēng)

類(lèi)型

是否必選

說(shuō)明

handler

string

消費(fèi)時(shí)返回的ID。

status

string

客戶(hù)端處理數(shù)據(jù)的狀態(tài)。

取值為“success”或者“fail”。

 

響應(yīng)參數(shù)

響應(yīng)參數(shù)如下表所示:

參數(shù)

類(lèi)型

描述

success

int

確認(rèn)成功的數(shù)目(如果為N,則表示前N條死信消息確認(rèn)成功)。

fail

int

確認(rèn)失敗的數(shù)目(如果為N,則表示后N條死信消息確認(rèn)失?。?。

看完上述內(nèi)容,你們掌握分布式消息服務(wù)DMS如何實(shí)現(xiàn)死信消息的消費(fèi)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標(biāo)題:分布式消息服務(wù)DMS如何實(shí)現(xiàn)死信消息的消費(fèi)
文章源于:http://bm7419.com/article44/pcogee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、微信公眾號(hào)服務(wù)器托管、面包屑導(dǎo)航、定制網(wǎng)站、小程序開(kāi)發(fā)

廣告

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

手機(jī)網(wǎng)站建設(shè)