2016-05-26 4 views
0

セットlog.flush.interval.messages = 1カフカで耐久性があります。 フラッシュは非同期または同期ですか?このようにして、プロデューサクライアントがackを取得したとき、それはそのメッセージが耐久性であるかどうかを意味しますか?

答えて

1

あなたはConfigフォルダ内のProducerプロパティファイルを編集する必要があります。そう、それはプロデューサーは、耐久性になり、ユーザーが受信したメッセージを認めるまで、メッセージが失われないことを確実にすることをrequest.required.acks-1に設定してください。

あなたはより多くの参考のために(プロデューサーConfigsを下に)thisで見ることができます。

+1

-1にrequest.required.acksを設定し、ときにサーバーがクラッシュデータは、定期的に最初のページキャッシュに書き込むと、ディスクへのフラッシュされ、データは失われます。私は正しい? – rickfeng

+0

それはもちろん起こる可能性があります。耐久性があればいつも一定期間バックアップを取るかどうか分からない。しかし、プロデューサーを耐久性のあるものにすることができましたか?プロデューサーは、ブローカーからのACKを得たとき – Kulasangar

+0

は、私たちは、メッセージが正常に書き込みされていることを、我々はそれを書き換えないと思います。現時点では、データがフラッシュされる前にブローカがクラッシュするため、消費者はそれ以上メッセージを受け取ることはありません。これが問題です。 – rickfeng