2017-05-18 9 views
1

ほとんどすべてのアプリケーションで埋め込みトポロジでHazelcastクラスタが使用されています。 アプリケーションの負荷が高いため、時々メモリやCPUに問題があります。このため、トポロジを組み込みモードからクライアント/サーバーモードに変更する予定です。ヘーズキャスト - クライアント/サーバーモードで複数のアプリケーションを提供するための最良のクラスタトポロジは何ですか?

質問は、アプリケーションごとに新しいクラスターを設定する必要がありますか?または、単一のクラスタがすべてのクライアントアプリケーションに対応する必要がありますか?

私は、複数のヘイズキャストインスタンスがjvm(http://docs.hazelcast.org/docs/3.5/manual/html/createclustergroups.html)で開始できることを知っています。これは生産のための選択肢でもありますか?

答えて

0

ユースケースに基づいて分析してみましょう。

  • ユースケース1: Hazelcastクラスタは、主に、分散キャッシュとして使用されます。この場合、単純に共通のクラスタを維持することができ、すべてのアプリケーションでHazelcastClientを維持してクラスタにアクセスできます。
  • UseCase-2: Hazelcastクラスタは、Executorを使用して分散キャッシュと分散コンピューティングの目的で使用されています。この場合、クラスターに保管するデータの量と、実行プールを使用して実行する計算のタイプを分析する必要があります。複数のサーバーにノードを割り当てる際には、CPU /コアの数も考慮する必要があります。

ベストプラクティス

  • 接続ではなく、パフォーマンスに影響を与えることができ、ネットワークのオーバーヘッドを追加し、複数のクライアント接続を作成するための各要求のために再利用されるだろうように、シングルトンとしてHazelcastClientオブジェクトを保管してください。

  • 適用可能な場合は、NearCache機能を使用して、コールごとにクラスタをトリップするのではなく、頻繁にアクセスされるデータをクライアント側でキャッシュします。

  • 単一のJVM内で複数のノードを実行するのではなく、それぞれのノードをそれぞれのJVMで起動する方がよいでしょう。親JVMで予期しない問題が発生すると、すべてのノードがクラッシュする可能性があります。

関連する問題