日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

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

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

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

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

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

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

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

01 生產者(Producer)

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

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

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

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

02 消息代理(Broker)

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

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

03 消費者(Consumer)

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

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

下圖是這個方法的偽代碼:y2o28資訊網——每日最新資訊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();    }      }


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

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

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

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

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

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 平舆县| 永顺县| 桦甸市| 临清市| 莱阳市| 额敏县| 波密县| 安岳县| 扶沟县| 南通市| 肃南| 韩城市| 高州市| 二连浩特市| 淮滨县| 云林县| 吴桥县| 海南省| 哈密市| 宝山区| 延津县| 巴青县| 榆树市| 丹阳市| 论坛| 仪征市| 洪泽县| 龙胜| 沙湾县| 兴业县| 北碚区| 新安县| 贵溪市| 分宜县| 鞍山市| 子长县| 南康市| 乐至县| 漳浦县| 金秀| 呼和浩特市|