AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

什么?你告訴我 Kafka 會丟消息?

來源: 責編: 時間:2024-04-09 17:23:39 157觀看
導讀Kafka 會丟失信息嗎?許多開發人員普遍認為,Kafka 的設計本身就能保證不會丟失消息。然而,Kafka 架構和配置的細微差別會導致消息的丟失。我們需要了解它如何以及何時可能丟失消息,并防止此類情況的發生。下圖顯示了消息在

Kafka 會丟失信息嗎?qGf28資訊網——每日最新資訊28at.com

許多開發人員普遍認為,Kafka 的設計本身就能保證不會丟失消息。然而,Kafka 架構和配置的細微差別會導致消息的丟失。我們需要了解它如何以及何時可能丟失消息,并防止此類情況的發生。qGf28資訊網——每日最新資訊28at.com

下圖顯示了消息在 Kafka 的生命周期中可能丟失的場景。qGf28資訊網——每日最新資訊28at.com

圖片圖片qGf28資訊網——每日最新資訊28at.com

01 生產者(Producer)

當我們調用 producer.send() 發送消息時,消息不會直接發送到代理。qGf28資訊網——每日最新資訊28at.com

消息發送過程涉及兩個線程和一個隊列:qGf28資訊網——每日最新資訊28at.com

  1. 應用程序線程
  2. 消息累加器
  3. 發送線程(I/O 線程)

我們需要為生產者配置適當的 "acks "和 "retries",以確保消息被發送到代理。qGf28資訊網——每日最新資訊28at.com

02 消息代理(Broker)

當代理集群正常運行時,它不應該丟失消息。但是,我們需要了解哪些極端情況可能會導致消息丟失:qGf28資訊網——每日最新資訊28at.com

  1. 為了提高 I/O 吞吐量,消息通常會異步刷到磁盤上,因此如果實例在刷新之前宕機,消息就會丟失。
  2. Kafka 集群中的副本需要正確配置,以保持數據的有效副本。數據同步的確定性非常重要。

03 消費者(Consumer)

Kafka 提供了不同的提交消息的方式。自動提交可能會在實際處理記錄之前確認對記錄的處理。當消費者在處理過程中宕機時,有些記錄可能永遠不會被處理。qGf28資訊網——每日最新資訊28at.com

一個好的做法是將同步提交和異步提交結合起來,在處理消息的循環中使用異步提交以提高吞吐量,在異常處理中使用同步提交以確保最后的偏移始終被提交。qGf28資訊網——每日最新資訊28at.com

下圖是這個方法的偽代碼:qGf28資訊網——每日最新資訊28at.com

try {    while (true) {    ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(1000));    for (ConsumerRecord<String, String> record : records) {        // process records one by one    }    consumer.commitAsync();    }} catch (Exception e){    // exception handling } finally {    try {        consumer.commitSync();    } finally {        consumer.close();    }      }


qGf28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-82370-0.html什么?你告訴我 Kafka 會丟消息?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 配置Nginx訪問阿里云OSS資源踩坑之路

下一篇: 我們一起聊聊如何使用Spring Boot 3 和 Redis 實現實時智能客服系統

標簽:
  • 熱門焦點
Top