OceanBase Cloudデータベースプロキシは、クライアントとOceanBase Cloudデータベースの間に位置し、クライアントからのリクエストを受信してバックエンドデータベースに転送する役割を担います。データベースプロキシは最適なルーティングを選択することで分散トランザクションを最小限に抑え、マルチレプリカ環境では単一サーバーの障害がアプリケーションに影響を及ぼすのを防ぎ、OceanBaseデータベースの高可用性を向上させます。
コアコンセプト
プロキシ接続アドレス
プロキシ接続アドレスはデータベースプロキシの核心であり、カスタムアクセスポリシーをサポートするほか、接続アドレスのプレフィックスやポート番号などの設定も変更可能です。データベースプロキシ接続アドレスを介してRDSインスタンスに接続することで、データベースプロキシの高度な機能を利用できます。
機能特徴
OceanBase Cloudデータベースプロキシは、接続管理、最適ルーティング、高性能転送、運用の容易さ、高可用性、専用プロトコルなどの機能を提供します。
接続管理
データベースプロキシは、各クライアントの物理接続に対して、自身とバックエンドの複数のOBServerノード間の接続を維持します。データベースプロキシはバージョンに基づく増分同期方式を採用し、各OBServerノード接続のセッション状態を維持することで、クライアントがすべてのOBServerノードに効率的にアクセスできるようにします。
最適ルーティング
データベースプロキシは、レプリカの位置、ユーザーが設定した読み書き分離のルーティングポリシー、OceanBaseの複数リージョン展開における最適なリンク、および各OceanBaseサーバーの状態と負荷を総合的に考慮し、リクエストを最適なOBServerノードにルーティングすることで、OceanBaseの高性能な動作を保証します。
高性能転送
データベースプロキシはMySQLプロトコルと完全に互換性があり、OceanBase専用プロトコルもサポートしています。データベースプロキシはマルチスレッド非同期フレームワークと透過的ストリーミング転送設計を採用し、高性能なデータ転送を保証すると同時に、自身のリソース消費を可能な限り抑えます。
運用の容易さ
データベースプロキシはステートレスで無限の水平スケーリングをサポートし、複数のOceanBaseインスタンスに同時にアクセスできます。OceanBase Cloudコンソールを通じてデータベースプロキシの状態をリアルタイムで監視できるため、運用がより簡単かつ便利になります。
高可用性
データベースプロキシの高可用性には2つの側面があります。1つは自身の高可用性を保証し、プロキシサービスを継続的に提供することです。もう1つは、OceanBaseの高可用性体系の重要な構成要素として、停止やアップグレードなどの影響をユーザーから隠蔽し、OceanBaseデータベースサービスの安定性と迅速な復旧を確保することです。
専用プロトコル
データベースプロキシは、OceanBase専用プロトコルを使用してOBServerノードと通信します。このプロトコルは、データパケットのCRC整合性検証を提供し、Oracle互換のデータ型やインタラクションモデルなどの拡張機能をサポートしています。