第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何添加額外的自定義標(biāo)頭,同時(shí)拋出異常以將消息存儲在 kafka 上的 dlq 中?

如何添加額外的自定義標(biāo)頭,同時(shí)拋出異常以將消息存儲在 kafka 上的 dlq 中?

幕布斯7119047 2023-11-10 15:51:19
我有一個監(jiān)聽 kafka 主題的消費(fèi)者應(yīng)用程序,在異常情況下,它會按預(yù)期將記錄發(fā)送到 dlq(死信隊(duì)列)。在拋出異常之前,我在消費(fèi)者應(yīng)用程序中設(shè)置標(biāo)頭,并且它正在設(shè)置,但沒有發(fā)送到死信主題,死信主題只有內(nèi)置標(biāo)頭,例如“x-exception-message”、“x-”原始分區(qū)'等...而不是我設(shè)置的那個。以下是我的消費(fèi)者應(yīng)用程序中的一段代碼:modifiedMessage = MessageBuilder.fromMessage(consumedMessage).setHeader("x-ecode", new Integer(100)).setHeader(BinderHeaders.PARTITION_OVERRIDE,consumedMessage.getHeaders().get(KafkaHeaders.RECEIVED_PARTITION_ID)).build();System.out.println("error header:"+modifiedMessage.getHeaders().get("x-ecode",Integer.class)); //100throw new RuntimeException(modifiedMessage.toString());注意:我在 spring.cloud.stream.kafka.binder.header=x-ecode 下的 application.yml 中設(shè)置 x-code在上面的代碼中,我能夠設(shè)置標(biāo)頭,并實(shí)際驗(yàn)證它已設(shè)置但未發(fā)送到死信主題。有效負(fù)載已正確發(fā)送,我如何將該標(biāo)頭發(fā)送到死信主題?我是否需要在 application.yml 中添加任何屬性才能使其發(fā)送?
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個贊

您所做的就是創(chuàng)建一條新消息并丟棄它(除非您將異常消息設(shè)置為其字符串實(shí)現(xiàn))。

這不會修改原始入站消息。

您只需添加一個新的輸出綁定并自行將修改后的消息發(fā)送給它即可。

或者,如果您只添加一個常量,則可以將 a 添加ChannelInterceptor到綁定的錯誤通道并修改那里的消息。如果您需要將狀態(tài)傳遞給攔截器,您可以使用自定義異常。

然而,最簡單的解決方案是自己發(fā)布消息,而不是使用綁定器的DLQ機(jī)制。您已經(jīng)有了創(chuàng)建消息的邏輯,因此它只是myCustomDlqBinding.send(modifiedMessage)(還添加了標(biāo)準(zhǔn) DLQ 標(biāo)頭)。


查看完整回答
反對 回復(fù) 2023-11-10
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號