以下のアプリケーションのカフカとアッカクラスタ
- バンチは、さまざまなトピックの下カフカにメッセージをエンキュー私のユースケースです。
- 各トピックのコンシューマには、クラスタ内の作業者に作業が配布されています。作業は、長時間実行、メモリ集中、シンプルなものなどに分類され、従業員がそれに応じて選択されます。
これは、仕事の配布、ルーティング、およびスケーリングのためにAkkaクラスタを探索しています。私はAkkaの "Supervisor"をKafkaの消費者として使用し、その分類に基づいて適切な労働者に入社作業を割り当てることができます。
しかし、私がまだ理解しようとしているのは、Akkaクラスタのスーパーバイザとワーカー間で弾力的な通信方法を実装する正しい方法です。監督がカフカからのメッセージを消費すると直ちに、カフカの相殺が確定するからです。オフセットコミット後に処理中に何らかのエラーが発生した場合は、最後に残した場所から回復して開始するには、次の許容可能な方法がありますか?
Kafkaに支えられた耐久性のあるメールボックスを使用して、スーパーバイザーを永続アクターにします。スーパーバイザはKafkaで作業をエンキューし、作業者はKafkaから作業を取得し、作業を完了した後でのみオフセットを実行します。
探しているものを見つけることを願っていますか?使用するライブラリには、消費後に自動的にメッセージをコミットしない機能があります。 –