我有一個安裝在具有8個內核和32GB RAM的VM上的單個kafka實例。Kafka不會消耗所有生成的數據
我從10臺不同的機器寫入(生產),並從一臺機器中消耗,所有機器都在同一個網絡中。
我生成的數據大小約爲35MBit/s。
由於某些原因,大部分時間我不能消耗超過〜10MBit/s(在有限的時間段內,我設法消耗所有生成的數據),儘管kafka和消費者服務器大多數閒置(因此我不認爲這是保留問題)。
kafka可能會忽略一些生成的數據嗎?
某些參數值,可能是分析有用:
num.network.threads=32
num.io.threads=16
message.max.bytes=2147483647
num.partitions=10
log.retention.ms=120000 (2 minutes)
你有acks = 1還是全部爲你的製片人? – dawsaw
@dawsaw不知道,是客戶端屬性?你能否詳細說明一下? – KidCrippler
是的,它在生產者客戶端上。你需要有acks = all來保證經紀人看到了這條消息。 acks = 1保證一個經紀人看到它,這可能是你可以做的最好的事情。此外,生產者的代碼應該處理沒有收到確認以提醒您丟失數據和/或重新發送的情況。 – dawsaw