2017-07-04 28 views
0

我使用librdkafka的C++客戶端和Confluent的dotnet客戶端來使用消息。 dotnet版本消耗給定主題和分區的所有記錄,但C++客戶端僅爲同一主題和分區消耗至多10條記錄。我玩過https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md這裏給出的屬性,這樣兩個版本的配置都一樣,但是沒有任何工作。有誰知道爲什麼會發生?消費消息與RdKafka :: KafkaConsumer C++:

+0

他們在同一個組(group.id)嗎?如果是這樣;你在C++客戶端之前運行過.NET客戶端嗎?這會使後續的C++運行選取.NET客戶端的已提交的偏移量,並只消耗新的消息。您可以通過在C++上使用唯一的group.id來驗證這一點,並設置auto.offset.reset =最早。 – Edenhill

+0

感謝您的快速響應。我改變了group.id並設置了auto.offset.reset =最早的,但我仍然得到了相同的記錄子集,並且msg-> len()永遠不會返回大於11331的任何東西。 – user3447816

+0

如果您提供消費者組態。 – Edenhill

回答

0

您沒有指定-X topic.auto.offset.reset=earliest(默認爲最新的偏移量),因此您的客戶將從分區末尾開始消費,並且消費者沒有新消息將看不到任何消息。 在測試期間,還要確保爲每次運行使用唯一的group.id,以避免從先前提交的偏移中恢復。