kafka中處理超大訊息的一些處理

2021-08-13 14:33:13 字數 707 閱讀 2344

kafka設計的初衷是迅速處理短小的訊息,一般10k大小的訊息吞吐效能最好(可參見linkedin的kafka效能測試)。但有時候,我們需要處理更大的訊息,比如xml文件或json內容,乙個訊息差不多有10-100m,這種情況下,kakfa應該如何處理?

針對這個問題,有以下幾個建議:

不過如果上述方法都不是你需要的,而你最終還是希望傳送大的訊息,那麼,則可以在kafka中設定下面一些引數:

broker 配置:

consumer 配置:

fetch.message.max.bytes (預設 1mb) – 消費者能讀取的最大訊息。這個值應該大於或等於message.max.bytes。

所以,如果你一定要選擇kafka來傳送大的訊息,還有些事項需要考慮。要傳送大的訊息,不是當出現問題之後再來考慮如何解決,而是在一開始設計的時候,就要考慮到大訊息對集群和主題的影響。

一切的一切,都需要在權衡利弊之後,再決定選用哪個最合適的方案。

參考配置如下:

1

2

3

4

replica.fetch.max.bytes=4194304

message.max.bytes=4000000

max.partition.fetch.bytes=4194304

kafka中處理超大訊息的一些考慮

kafka設計的初衷是迅速處理短小的訊息,一般10k大小的訊息吞吐效能最好 可參見linkedin的kafka效能測試 但有時候,我們需要處理更大的訊息,比如xml文件或json內容,乙個訊息差不多有10 100m,這種情況下,kakfa應該如何處理?針對這個問題,有以下幾個建議 最好的方法是不直接...

kafka的一些引數

python操作kafka 需求,如果topic不存在,不允許自動建立 每個topic的分割槽個數,更 多的partition會產生更多的segment file num.partitions 2 是否允許自動建立topic 若是false,就需要通過命令建立topic auto.create.to...

Kafka中關於分割槽的一些理解

分割槽和主題 一般我們會在乙個topic下設定多個分割槽,這樣多個分割槽對應多個消費者,以此可以提高kafka的吞吐量,相當於處理訊息時達到了多執行緒並行執行的效果。分割槽和訊息 當生產者要向某個主題傳送訊息時,生產者會先將訊息序列化處理,然後根據topic,serializedkey,serial...