WebLogicクラスタでマルチキャストではなくユニキャストを使用する必要がある理由は、ドキュメントからは明らかではありません。誰でもどちらかを使用した経験とユニキャストへの移行の利点がありますか?
ユニキャストとマルチキャストの主な違いは次のとおりです
クラスタに3つのサーバー(MS-1、MS-2、MS-3)があるとします。相互に通信する必要がある場合は、クラスターマスターにping(ハートビート)を送信して、生存していることを通知する必要があります。
MS-1がマスターの場合、MS-2とMS-3はpingをMS-1に送信します
マルチキャストでは、クラスターマスターはありません。代わりに、各サーバーはお互いにpingを実行して、生存していることを全員に通知する必要があります。
したがって、MS-1はMS-2とMS-3にpingを送信し、同時にMS-2はMS-1とMS-3にpingを送信し、MS-3はMS-1とMS-3にpingを送信します。
したがって、マルチキャストでは、送信されるpingの数が多くなり、ユニキャストと比較して、pingを送信する際の輻輳がはるかに重くなります。このため、WLSでは、ネットワークの輻輳を減らすために、代わりにユニキャストを使用することをお勧めします。 Oracle Docs:クラスター内の通信
マルチキャストの背後にある原則は、メッセージはマルチキャストアドレスのすべてのサブスクライバーによって受信されることです。したがって、MS-1は他のすべてのクラスターメンバーにそのステータスを警告するために1つのネットワークパケットを送信するだけで済みます。これは、ステータスまたはJNDIの更新に必要なのは、クラスタあたり1パケットのみ(マルチキャストの場合)、サーバーあたり1パケット(概算)の場合はユニキャストの場合です。マルチキャストでは、「マスター」選挙も必要ありません。これにより、マルチキャストのコーディングがはるかに簡単になり、ネットワークトラフィックが減少します。
だから、マルチキャストは素晴らしいですか?必ずしも。それは本質的に信頼性が低く、確認応答されていないUDPデータグラムを使用するため、信頼性のないベアラープロトコル-イーサレント-を使用すると、メッセージが表示されない可能性があります(解釈:クラスターから脱落する)。マルチキャストの概念全体はサブスクリプションに基づいており、通常の意味での「ルーティング可能な」プロトコルではないため、デフォルトでは、ルーターはマルチキャストパケットを破棄するか、ネットワークストームの危険を冒す必要があります。したがって、すべてのクラスタメンバーが同じネットワークセグメントに存在するための歴史的な要件。
これらのマルチキャストの欠点は、クラスターがネットワークにまたがっている場合や、あまりにも多くのマルチキャストパケットを失っている場合にユニキャストを使用する方法であることを意味します。
Unicast over Multicastの主な利点は、構成が簡単なことです。ユニキャストはTCP通信を使用し、これは通常、追加のネットワーク構成を必要としません。マルチキャストはUDP通信と マルチキャストアドレス を使用します。これには、ネットワーク構成と、使用するアドレス。
詳細な説明付きのOracle A-Teamからのすばらしい記事があります WebLogic Server Cluster Messaging Protocols 。
WLS 12.1.2のドキュメントで、Oracleは ユニキャストまたはマルチキャストの選択に関する考慮事項 を追加しました。ここでは、管理対象サーバーが10台を超えるクラスターでマルチキャストを使用することを推奨しています。
私の個人的な経験から、ユニキャストは主にWLS 10.0で導入された新しいプロトコルであり、いくつかのマイナーな問題に苦しんでいるため、大きなクラスターでいくつかの問題を引き起こす可能性があることがわかりました。
ここでの答えは、Oracle A-Teamからの推奨と矛盾するようです。彼らの推奨は次のとおりです。
一般に、Aチームの経験則では、それが不可能または実用的でない正当な理由がない限り(たとえば、ルーターがUDPマルチキャストメッセージを伝達することが許可されていない複数のサブネットにまたがっている場合)は、常にマルチキャストの使用を推奨します。これの主な理由は、単にリソース不足に対する効率性と回復力です。
完全な記事は here にあります。
Weblogicのデフォルトはユニキャストであり、12cのドキュメントは、下位互換性を確保するためにマルチキャストのみがサポートされていることを示しています。
WebLogic Serverのドキュメントの一部では、マルチキャストは下位互換性のためにのみサポートされているとされていますが、これは正しくありません。マルチキャストクラスタメッセージングプロトコルは、Oracleによって完全にサポートされています。 Aチームは、WebLogic Server製品管理と協力して、Weblogic Server 12cドキュメントのこれらのドキュメントの問題に対処しています。
マルチキャスト構成とユニキャスト構成の両方にクラスターマスターがあります。クラスターマスターに加えて、ユニキャストには1つ以上のリーダーがあります。クラスターリーダーは、クラスターマスターである場合とそうでない場合があります。
マルチキャストはブロードキャストです。それらはtcpメッセージのように互いにpingしません。ユニキャストとマルチキャストのどちらの場合でも、トラフィックは通常は取るに足らないものです。ただし、ネットワークがサポートしている場合、マルチキャストはほとんど常に最良の選択です。
ユニキャストは、マルチキャストサポートを必要としないという点で、マルチキャストよりも単純な構成を提供します。すべてのルーター/スイッチはTCPをサポートしていますが、すべてのルーター/スイッチがマルチキャストをサポートしている、または有効になっているわけではありません。ただし、ユニキャストはマルチキャストよりも多くのネットワークトラフィックを生成します。