1

IoT データ収集プロジェクトと IoT データ処理プロジェクトがあります。それらは個別に開発および保守されます。ただし、Orleans のサイロ (またはサイロ クラスター) で共通の穀物を共有することは有益です。自己ホスト型のシナリオ (サイロ内の通信用に両方のプロジェクトを参照するモノリシック サイロ、または外部と通信する 2 つの別個のサイロ) では、アーキテクチャはどのように見えるでしょうか? サイロが 1 つの場合、サイロはグレイン .dll を動的に検出できますか?

4

1 に答える 1

2

おそらくより良い答えがあるでしょうが、それまでは:

いくつかのトレードオフがあります。パフォーマンスに関しては、(すべてのサービスの) すべての粒度をクラスター全体に分散させることをお勧めします。このようにして、すべてのグレインは Orleans インフラストラクチャ (tcp を介したバイナリ シリアル化されたメッセージだと思います) を介して他のグレインと通信し、追加のオーバーヘッドはありません。しかし、すべてのサービス (ま​​たはプロジェクト) に独自のサイロがある場合、Orleans に加えてゲートウェイ (おそらく HTTP リスナー) が必要になります。ただし、最初の例では、サービスが結合されます。古いバージョンのサービスを実行しているサイロがある限り、サービスの新しいバージョンをデプロイすることはできません (そうでない場合、同じエンティティの 2 つの粒度が存在する可能性があります)。しかし、そのサイロをシャットダウンすると、残りのサービスがシャットダウンされます。これは非常に重要な問題です。

単一のサイロの場合、サイロはグレイン .dll を動的に検出できますか?

よく分からない。サイロが起動すると、そのフォルダー内の dll を再帰的に検索し、グレインが見つかった場合はそれらをロードします。

于 2015-08-16T11:10:09.947 に答える