2

c++ ベースのシステムと通信する TCP/IP ベースのコンポーネントがあります。実際、そのシステムから生のバイトを読み取り、それらの生のバイトをオブジェクトにマーシャリングしてDBに保存しています。このマルチスレッド tcp/ip ベースのコンポーネントは Java であり、デュアル コアまたはクアッド コア プロセッサに展開できます (私の質問にとって重要かどうかはわかりませんが、詳細を提供します)。今、私はいくつかの質問があります:

  1. この tcp/ip ベースのコンポーネントをスケーリングするにはどうすればよいですか? このコンポーネントはサーバーにデプロイされ、ポートをリッスンしています。将来、この時点で想定されている C++ システムからのデータがさらにある場合は、この Java コンポーネントをスケーリングできるはずです。

  2. セキュリティについてはどうですか。おそらくできることの 1 つは、セキュア ソケットでこの通信を使用するか、暗号化されたデータ (ここで使用できる特定の暗号化??) を取得することです。セキュリティを確保する他の方法はありますか?

  3. また、満たすべき高可用性の要件もあります。どうすればそれを処理できますか?ここでどのように冗長性を持たせることができますか?

はい、私たちは製品のシステム アーキテクチャに取り組んでいるので、経験豊富なアーキテクトまたはデザイナーに助けてもらえないかと思っていました。

4

1 に答える 1

3

この tcp/ip ベースのコンポーネントをスケーリングするにはどうすればよいですか? このコンポーネントはサーバーにデプロイされ、ポートをリッスンしています。将来、この時点で想定されている C++ システムからのデータがさらにある場合は、この Java コンポーネントをスケーリングできるはずです。

通常、ネットワーク ロード バランサーを使用して、この種のサービスを複数のサーバーにスケーリングします。そのロードバランサーは、次のようなさまざまなアルゴリズムを使用して負荷を分散できます。

  • CPU 負荷 (通常は snmp で測定)
  • クライアントの IP アドレス (クライアントをサービスにマッピングするときに永続性が必要な場合)
  • アクティブなソケットの数

人気のあるオープンソースのロードバランサー であるHAProxyを見てください。F5には、最も人気のある商用ロード バランサ ソリューションがあります。

セキュリティについてはどうですか。おそらくできることの 1 つは、セキュア ソケットでこの通信を使用するか、暗号化されたデータ (ここで使用できる特定の暗号化??) を取得することです。セキュリティを確保する他の方法はありますか?

  • 前述のように、SSL はオプションですが、顧客サービスを実行しているのと同じハードウェアで暗号化すると、サービスのパフォーマンスが大幅に低下することを理解してください。これらの線に沿った 1 つのオプションは、ハードウェアに SSL を実装する商用のロード バランサーを使用することです。そのロードバランサーは、暗号化されていないソケットを TCP サービス ファームに転送します。
  • 状況によっては、IPSecネットワーク レベルの暗号化を使用できます。多くの場合、これは別のネットワーク ハードウェア ソリューションです。通常、クライアントは自分の PC に常駐する IPSec アプリケーションをダウンロードします...次に、クライアントと IPSec ターミネーション ポイントの間を暗号化する IPSec サーバーに接続します。
  • ポート転送によるSSHトンネリング (ローテク ソリューション)
  • tcpcryptは将来のテクノロジーとして興味深いものに見えますが、現時点でどれだけ成熟しているかはわかりません。

また、満たすべき高可用性の要件もあります。どうすればそれを処理できますか?ここでどのように冗長性を持たせることができますか?

高可用性とは何を意味するか、およびどのような種類の回復タイミングが必要かによって大きく異なります。大まかに言えば、いくつかのオプションがあります。

  • DNS ベースの HA は、クライアントからソケットへのマッピングの永続性が必要ない場合に機能します。DNS を使用する場合は、一般的な DNS A レコードのタイムアウトを受け入れる必要があります (通常、人々は 5 分 / 300 秒未満にはなりません)。これは、複数のサイト間でデータベースを同期する方法を見つけたことも前提としています。
  • ロードバランサ ソリューション。バックエンド データベースの同期に関する同じ問題

あらゆる種類の HA を実行するには、おそらく、これらのサービスの実装で実績のあるコンサルタントを雇いたいと思うでしょう (社内にこの種のリソースがない場合)。

于 2012-01-16T11:11:37.143 に答える