マシン A はマシン B にメッセージを送信する必要があります。マシン A には静的 IP がありますが、マシン B にはありません。
この問題を解決するために考えられる 1 つのオプションは、マシン B がマシン A への TCP 接続を開き、マシン A がデータ/メッセージをマシン B に送信することです。ただし、この解決策には次の制限があります。
a) マシン B のようにデータの送信先のマシンが多数ある場合、スケーラブルではありません。マシン A のリソースを奪う可能性があります。
b) 必要なときにデータを送信する必要があるのはマシン A です。マシン B は、そのデータがいつ存在するかを知りません。現在の設計では、マシン B は、データがあるかどうかを尋ねる TCP 接続を使用して、マシン A を繰り返しポーリングし続ける必要があります。多くのマシン B がある場合、これは高くつく可能性があります。
この問題を解決する安価な方法はありますか? オブザーバーのデザインパターンが思い浮かびます。マシン B は、マシン A からの通知にサブスクライブして、データが利用可能になったときに通知することができます。しかし、マシン B が静的 IP を持っていない場合、分散環境でパターンをどのように実装するのでしょうか?
オブザーバーはさておき、マシン A の raw ソケットを使用してそのデータをマシン B に送信する以外に、コストがかからない方法はありますか?