私は、顧客のために多数の製品の在庫を管理するステートフルサービスに取り組んでいます。各顧客は、自分のパーティションにこのステートフルサービスのインスタンスを持つテナントグループに属します。したがって、Id 10のテナントとId 11のテナントが同じパーティション内にある可能性があります(仮定します)。Azure Service Fabricは、パーティション間でステートフルなサービス状態を共有していますか?
各テナントは、Id = 100(たとえば)のアイテムのインベントリにアクセスできます。この商品を購入するたびに、このテナントの在庫が存在するかどうかを確認し、そうでなければ呼び出しアプリケーション(この場合は信頼できる俳優)に通知し、彼に知らせます。
しかし、私はアイテムIDのキーと在庫数で信頼できる辞書を保管していたことに気付きました。私は、サービスが別々のパーティションに属していても、同じオブジェクトにアクセスしていることに気付きました。これらのサービスが異なるパーティションに属していても、それらは同じ基本状態を維持していますが、これは本当ですか?
もしそうなら、この情報をActorレベルに直接格納する方が理にかなっていますか?私は俳優レベルで信頼できるコレクションを見ていないので、俳優によって呼び出されるステートフルサービスを構築しましたが、私の以前のAkka実装では、この状態をActorレベルで保存します。
誰かが似たようなことを実装していると私は不思議です。
ありがとうございます!
Anup Marwadi
ありがとうございます。私はそれも考えましたが、テストを開始したときに何かが正しく見えませんでした。確認するためにコードを確認する必要があります。私はあなたの投稿を続けます。 –
こんにちは、私はついにその問題が何かを理解しました。私のローカル展開では、パーティション数は1に設定されていました.2番目の要求でパーティションキーが異なっていても、同じパーティションになります。パーティション数を10に増やした後、状況はもっと良く見え始めました。ありがとうございました。 –