我使用下面的代碼寫入到卡夫卡:卡夫卡壓縮可以用相同的分區密鑰覆蓋消息嗎?
String partitionKey = "" + System.currentTimeMillis();
KeyedMessage<String, String> data = new KeyedMessage<String, String>(topic, partitionKey, payload);
而且我們使用0.8.1.1版本卡夫卡的。
是否有可能的是,當多個線程編寫,他們中的一些(不同的有效載荷)用相同的分區鍵和寫,因爲卡夫卡覆蓋這些消息(由於同一partitionKey)?
這讓我們在這個方向思考的文檔是: http://kafka.apache.org/documentation.html#compaction
謝謝格溫。但是你的回答看起來更像是一個應該如何而不是確認的建議。 我的問題更多的是關於數據沒有達到消費者,因爲壓實。日誌壓縮與消息傳遞不同嗎?日誌是否可能被壓縮,但客戶端仍然獲得具有相同密鑰的所有消息? 如果此功能僅在8.1 *版本中引入,則此更改是否與先前版本不兼容? – user2250246 2014-11-03 03:39:26
1.日誌壓縮與消息傳遞不同。無論是否有人正在使用消息,壓縮都發生在服務器中。 – 2014-11-03 23:10:15
2.如果客戶在寫完信息後立即讀取消息,它將在壓縮之前完成,他們將獲得所有消息。 – 2014-11-03 23:11:45