私は、フリンクストリーミングでルールエンジンを作成する予定です。flinkクラスタにたくさんのジョブを作成するのがよい方法ですか?
実行に関するいくつかの要件があります
- がルールセットに対して実行されるすべてのイベントは、カフカから読み取る必要があります。
- すべてのルールは、限られた時間内に実行する必要があります。
問題は、実行時にルールを追加できるため、ルールを実行できる最大時間を超える可能性があるため、すべての受信メッセージを処理するためのジョブをたくさん作成できません。
私は期限内に1つのルールを実行できるという保証があります。
ルールごとに1つのジョブを作成し、新しいルールが来たときにジョブを追加するのがよいのでしょうか? (これは数百のルールでもよい)。
私は、これが問題を処理する方法ではなく、理由を説明するのに本当に合理的なものではないという直感を持っています。
第2の方法は、ルールがどのイベントに対して実行されたかについてのトレースを保持するために、(例えば、飼い猫のような)待ち行列を維持することである。だから、各ジョブの作業のみに構成されています
- は、すべてのルールがイベント
:
次のようになります。 – goodie
@goodie CEPエンジンを正しく理解していれば、自分の仕事に新しいルールを動的に追加することはできません。 ジョブが実行されたときに実行グラフが作成され、その後に変更することはできないため、 – cju
私が知っているすべてのCEPエンジンでは、実行時にルールを追加/管理できます。私はそれがCEPエンジンであることの全体的なポイントだと思う。 Esperでは、 "epAdministrator.createEPL(...)"でそれを行います。 – goodie