|
|
FioranoMQ® デザイン ゴール (耐障害性の向上) |
|
対障害性の向上
FioranoMQ では、耐障害性を高める目的で、次の 2 つの機能が設計され製品化されています。
恒久接続とクライアント サイドの永続化
HA (高可用性) 機能
恒久接続とクライアント サイドの永続化
JMS では、
- ストア&フォワード方式
- メッセージの承認 (ACKNOWLEDGE モード)
- 永続 (persistent) メッセージ
- 継続サブスクライバ (durable subscriber)
の 4 つの仕様によって、メッセージ コンシューマへのメッセージ配信が保証されます。
しかしながら、この保証はコンシューマと JMS プロバイダとの間に発生した障害には有効ですが、メッセージ プロデューサと JMS サーバーとの間で発生した障害についてはうまく働きません。プロデューサは、障害発生中にメッセージを送信することができず、処理を中断することが求められます。障害復旧後に JMS サーバーに再接続し、メッセージの送信をやり直さなければなりません。
FioranoMQ では、この問題を解消するために下記の 2 つの機能を設けました。
- クライアント サイドのメッセージ永続化
JMS サーバーの接続障害のためにメッセージを送信できない状況では、プロデューサが保有しているデータが障害回復までの間に失われてしまう可能性が高まります。JMS サーバーとの接続が回復するまでの間、プロデューサ側のデータを保存しておく機能が必要となります。
FioranoMQ のクライアント サイド 永続化 (CSP : Client Side Persitent) 機能では、JMS サーバーとの接続に障害を検出すると、プロデューサは送信しようとするメッセージをローカル キャッシュに格納します。この間、プロデューサはあたかも JMS サーバーが正常に動作しているかのように処理を続行することが可能です。これらの一連の処理 (障害検出、キャッシュへの格納) は JMS ランタイムによって自動的に実行されるため、プロデューサの作成に特別なプログラミング ロジックを必要とせず、JMS に準拠したプログラミングを維持できます。
- 恒久接続
FioranoMQ に設けられている "恒久接続 (Durable Connection)" は、JMS サーバーとの接続に障害が発生した場合に、次の 2 つの処理を実行します。
- JMS サーバーへの再接続の試行
- ローカル ストアへのメッセージの格納 (上記のクライアント サイドの永続化機能を参照)
障害の発生にはさまざまな原因がありますが、一時的な原因によって JMS サーバーに接続できなくなるケースも多いものです。このような場合には、再接続を試行することで JMS サーバーへの接続が回復する可能性があります。FioranoMQ の恒久接続は、再接続の自動化メカニズムを提供するもので、すべて JMS ランタイムによって実行されます。恒久接続によって、障害の検知と迅速な再開を特別なプログラミングを必要とせずに実現できます。
"クライアント サイドの永続化" および "恒久接続" の詳細については、『恒久接続』、『クライアント サイドの永続化』 のページを参照してください。
恒久接続 の説明ページへ
クライアント サイドの永続化 の説明ページへ
HA (高可用性) 機能
FioranoMQ は、自動フェイルオーバーの手段として、高可用性 (HA : High Availability) 機能を備えています。
メッセージの永続化や恒久接続は、障害発生時にメッセージを一時的に保存しておき、障害から回復した時点でメッセージを配信する機能です。
HA では障害発生時にスタンバイ サーバーが自動的に立ち上がり、プライマリ サーバーの状態をそのまま引き継いで処理を続行します。このため、障害から回復するのを待つことなく、メッセージが遅延なく配信されます。
詳細については、『高可用性 (HA 機能) の詳細説明』 のページを参照してください。
高可用性 (HA 機能) の説明ページへ
|
|
|
|
|
|