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...