OB Cloudデータベースプロキシは、クライアントとOB Cloudデータベースの間に位置し、クライアントからのリクエストを受信してバックエンドのOB Cloudデータベースに転送します。最適なルーティングを保証し、分散トランザクションをできるだけ回避します。また、マルチレプリカ環境において、単一サーバーの障害がアプリケーションに影響を与えないようにし、OceanBaseデータベースの高可用性を向上させます。
概念紹介
プロキシ接続アドレス(旧プロキシエンドポイント)
プロキシ接続アドレス(旧プロキシエンドポイント)はデータベースプロキシの核心であり、カスタムの接続アドレスアクセスポリシーの設定、接続アドレスのプレフィックスやポート番号の変更などをサポートします。データベースプロキシ接続アドレスを使用してRDSインスタンスに接続することで、データベースプロキシの高度な機能を利用できます。
機能紹介
OB Cloudデータベースプロキシは、接続管理、最適ルーティング、高性能転送、運用の容易さ、高可用性、専用プロトコルといった特徴を備えています。
接続管理
クライアントの物理接続に対して、データベースプロキシは自身とバックエンドの複数のOBServerノードとの接続を維持し、バージョン番号に基づく増分同期方式で各OBServerノード接続のセッション状態を保持することで、クライアントが各OBServerノードに効率的にアクセスできるようにします。
最適ルーティング
データベースプロキシは、ユーザーのリクエストに関連するレプリカの位置、ユーザーが設定した読み書き分離のルーティングポリシー、OceanBaseの複数地域展開における最適なリンク、およびOceanBase各マシンの状態と負荷状況を総合的に考慮し、ユーザーのリクエストを最適なOBServerノードにルーティングすることで、OceanBase全体の高性能な運用を最大限に保証します。
高性能転送
データベースプロキシはMySQLプロトコルと完全に互換性があり、OceanBase独自のプロトコルもサポートしています。マルチスレッド非同期フレームワークと透過的ストリーミング転送の設計を採用することで、データの高性能転送を実現すると同時に、自身のマシンリソース消費を最小限に抑えます。
運用の容易さ
データベースプロキシ自体はステートレスであり、無限の水平スケーリングをサポートし、複数のOceanBaseクラスタへの同時アクセスに対応しています。OB Cloudコンソールを通じてデータベースプロキシの状態をリアルタイムで監視できるため、運用が簡単かつ便利です。
高可用性
データベースプロキシの高可用性は二つの側面に分かれます。一方では自身の高可用性を保証し、プロキシサービスを継続的に提供します。もう一方では、データベースプロキシはOceanBaseの高可用性体系の主要な構成要素であり、ダウンやアップグレードなどの事象をユーザーから隠蔽し、OceanBaseデータベースサービスの安定性と迅速な復旧を保証します。
専用プロトコル
データベースプロキシは、OBServerノードとの通信において、デフォルトでOceanBase専用プロトコルを採用しています。例えば、パケットにCRC検証を追加してOBServerノードとのリンクの正確性を保証したり、Oracle互換性のデータ型やインタラクションモデルをサポートするために伝送プロトコルを強化したりしています。