我知道將單個事件中心訊息傳遞給消費者至少一次,并且我可以看到大量有關此的檔案。但是,如果我是事件發布者,我是否可以保證我的事件只發布到流中一次?
鑒于我可能無法收到指示發布訊息是否成功的回應,我別無選擇,只能重試。是否有任何事情阻止我的事件在集線器上被復制?
uj5u.com熱心網友回復:
不; 在事件中心生態系統中不能保證完全一次。
也就是說,如果您愿意依賴 beta 版本,Azure.Messaging.EventHubs在 v5.7.0-beta.x 中引入了一個新的緩沖生產者,它支持冪等重試。啟用此功能后,生產者使用的隱式重試將有助于防止重復。
然而,重要的是要注意,這是盡力而為,不會改變至少一次保證。無論發布時是否重復,消費者都應該期待并防止閱讀重復事件。
要啟用它,您需要配置類似于以下內容的緩沖生產者:
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
var options = new EventHubBufferedProducerClientOptions
{
EnableIdempotentRetries = true
};
var producer = new EventHubBufferedProducerClient(
connectionString,
eventHubName,
options);
有關緩沖生產者的更多資訊,請參閱 SDK 的發布事件示例。
盡管我們目前的目標是 5 月初,但我們還沒有確定其穩定發布的日期。請注意,我們不建議在關鍵生產場景中使用 beta 包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/439313.html
標籤:天蓝色 天蓝色的eventhub
