2017-07-25 1 views
0

保持期間を超えてトピックがどのように振る舞いますか?保持ポリシー期間後にそれらに書き込むことは可能ですか? confluent-kafka-dotnet(.NETライブラリ)に書き込むようにしていますが、コンシューマを実行すると、ストリーミングされたメッセージは表示されません。パーティションの値は空の文字列配列です。保持時間を超えてトピックに書き込むことは可能ですか、トピックが無効になっていますか?カフカは保持期間を超えてトピックに書き込むことができます

using (var consumer = new Consumer(config)) 
{ 
    consumer.Assign(new List<TopicPartitionOffset> { new TopicPartitionOffset(topicName, 0, 0) }); 

    while (true) 
    { 
     Message msg; 
     if (consumer.Consume(out msg)) 
     { 
      Console.WriteLine("Topic: {0} Response: P{1},O{1} :{3}", msg.Topic, msg.Partition, msg.TopicPartitionOffset, Encoding.UTF8.GetString(msg.Value)); 
     } 
    } 
} 

答えて

1

カフカの保存期間は、あなたが今作成しているイベントではなく、過去のイベントに適用されます。保持ポリシーが何であっても新しいメッセージを見ることができるはずです。

例: 24時間保存のトピックは、7月1日深夜に作成されます。 7月1日23時50分に、あなたが一日中書き込んだすべてのデータがまだそこにあります。 7月2日01:00に、7月1日午前1時以降に書き込まれたデータのみが保存され(過去24時間)、以前のイベントは「パージされます」。

消費者が新しいメッセージを見ることができない場合、それは2つのうちの1つです: 1.メッセージはまったく書き込まれていますか? (Kafkaにチェックを助けるファイルダンプユーティリティがあります) 2.消費者はいつ読書を始めますか?あなたの消費者が話題の終わりに始まる場合、以前のメッセージを見逃す可能性があります。開始時に開始すると、トピック内のすべてのメッセージが取得されます。 "auto.offset.reset"設定はこれを制御します。コンソールコンシューマを使用している場合、 "--from-beginning"。

関連する問題