導入 パート1: 冒頭に書いた OneProxy は、民間ソフトウェアによって完全に独立して開発された分散データ アクセス レイヤーです。MySQL/PostgreSQL クラスターでのシャーディングをサポートする分散データベース ミドルウェアをユーザーが迅速に構築するのに役立ちます。また、SQL ホワイトリスト (アンチ SQL インジェクション) と IP ホワイトリスト機能を備えた SQL ファイアウォール ソフトウェアでもあります。これは、MySQL Proxy と一致するリバース プロトコル出力モードを使用します。これは非常にシンプルで透過的であり、アプリケーションにとって使いやすく、ユーザーが恐れるデータベース フェイルオーバー、読み取り/書き込み分割、水平パーティショニングなどの複雑なソリューションを非常にシンプルで制御可能なものにします。 Libevent メカニズムに基づき、単一インスタンスで 250,000 の SQL 転送機能を実現できます。1 つの OneProxy ノードで MySQL クラスター全体を駆動し、ビジネス開発に貢献できます。 パート2: 環境の紹介 HE1:192.168.1.248 スレーブ1 HE2:192.168.1.249 スレーブ2 HE3:192.168.1.250 マスター HE4:192.168.1.251 ワンプロキシ 環境構築 パート1: Oneproxyをインストールする [root@HE4 ~]# tar xvf oneproxy-rhel5-linux64-v5.8.5-ga.tar.gz [root@HE4 oneproxy]# ls bin conf demo.sh log oneproxy.service README testadmin.sql testautocommit.sql testproxy.sql trantest.sql パート2: マスタースレーブ環境の構築 この記事のアーキテクチャは、マスター 1 つとスレーブ 2 つで構成され、HE3 がマスターで、HE1 と HE2 がスレーブです。マスタースレーブの構築はこの記事の焦点ではないので、必要に応じて移動できます。 mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法 パート3: Oneproxyを構成する ディレクトリ内のデモは初期起動スクリプト、oneproxy.serviceは起動および停止スクリプト、新しいバージョンのoneproxyではconfフォルダ内のproxy.cnfは設定ファイルです。 [root@HE4 oneproxy]# cat demo.sh #/bin/bash # ONEPROXY_HOME=/root/oneproxy をエクスポートします。 # valgrind --leak-check=full \ ${ONEPROXY_HOME}/bin/oneproxy --defaults-file=${ONEPROXY_HOME}/conf/proxy.conf demo.shのONEPROXY_HOMEをoneproxyが解凍されたディレクトリに変更します。 [root@HE4 oneproxy]# cat oneproxy.service #!/bin/bash # chkconfig: -30 21 # 説明: OneProxy サービス。 # ソース関数ライブラリ . /etc/init.d/functions # OneProxy 設定 ONEPROXY_HOME=/root/oneproxy ONEPROXY_SBIN="${ONEPROXY_HOME}/bin/oneproxy" ONEPROXY_CONF="${ONEPROXY_HOME}/conf/proxy.conf" ONEPROXY_PID="${ONEPROXY_HOME}/log/oneproxy.pid" 戻り値=0 prog="OneProxy" 始める() { echo -n $"$prog を開始しています..." デーモン $ONEPROXY_SBIN --defaults-file=$ONEPROXY_CONF RETVAL=$? エコー } 停止() { echo -n $"$prog を停止しています..." [ -e ${ONEPROXY_PID} ]の場合; デーモンをkill -INT $(cat ${ONEPROXY_PID}) RETVAL=$? フィ エコー } 再起動(){ 停止 睡眠1 始める } ケース「$1」 始める) 始める ;; 停止) 停止 ;; 再起動) 再起動 ;; *) echo $"使用法: $0 {start|stop|restart}" 戻り値=1 エサック $RETVALを終了 同時に、oneproxy.service 内の ONEPROXY_HOME を解凍時のディレクトリに変更します。 oneproxyのbinディレクトリに入り、mysqlpwdを使用してパスワードを暗号化します [root@HE4 oneproxy]# cd bin/ [root@HE4 bin]# ls mysqlpwd ワンプロキシ [root@HE4 bin]# ./mysqlpwd マネージャー 1C6D087BA5D2607A27DECB2F2AFE247E911E877A proxy.cnfの内容を編集する [root@HE4 conf]# cat proxy.conf [ワンプロキシ] キープアライブ = 1 イベントスレッド = 4 プロキシグループポリシー.2 = テスト:読み取りスレーブ ログファイル = log/oneproxy.log pid ファイル = log/oneproxy.pid lck ファイル = log/oneproxy.lck プロキシ自動読み取り専用 = 1 プロキシ転送クライアントIP = 1 プロキシトランスデバッグ = 1 プロキシアドレス = :3307 mysql バージョン = 5.7.16 プロキシマスターアドレス.1 = 192.168.1.250:3306@test プロキシスレーブアドレス.2 = 192.168.1.248:3306@test プロキシスレーブアドレス.3 = 192.168.1.249:3306@test プロキシユーザーリスト = sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test プロキシユーザーグループ = test:sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test プロキシ部分テンプレート = conf/template.txt プロキシパートテーブル.1 = conf/part.txt プロキシパートテーブル.2 = conf/part2.txt プロキシパーツテーブル.3 = conf/cust1.txt プロキシ文字セット = utf8_bin プロキシセキュアクライアント = 127.0.0.1 # プロキシライセンス = 32C54560E06EFF3E プロキシhttpサーバー = :8080 proxy-httptitle = OneProxy モニター パート4: Oneproxyを起動する [root@HE4 oneproxy]# ./demo.sh [root@HE4 oneproxy]# ./oneproxy.service を再起動します OneProxy を停止しています...[OK] OneProxy を起動しています... [ OK ] テスト パート 1: Oneproxy ステータスの検証 ブラウザを開いてポート192.168.1.251:8080を開き、oneproxy管理ページを表示します。 ここでは、マスターとスレーブのさまざまなステータス情報を確認できます。 パート2: 負荷分散と読み取り/書き込み分離の検証 [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"@@hostnameを選択します;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE1 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"@@hostnameを選択します;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE2 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"@@hostnameを選択します;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE1 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"@@hostnameを選択します;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE2 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"@@hostnameを選択します;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE1 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"begin;select @@hostname;commit;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE3 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"begin;select @@hostname;commit;" mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 +------------+ | @@ホスト名 | +------------+ | HE3 | +------------+ HE1とHE2をロードバランサーとして使用しても問題はなく、HE3を書き込みサーバーとして使用しても問題はないことがわかります。 --要約-- OneProxy は MySQL と連携して、読み取りと書き込みの分離と負荷分散の実験を実現し、成功裏に構築されました。Oneproxy にはデータベースとテーブルのシャーディング機能もあり、今後さらに研究される予定です。著者の能力の限界と記事執筆の急ぎにより、記事には必然的に誤りや不正確な点があります。不適切な点がありましたら、読者の皆様のご批判と訂正を心からお願い申し上げます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: 2つのVirtualBox仮想ネットワークをブリッジするLinuxブリッジメソッドの手順
ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...
MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機...
目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...
1. 今日の午後、コースの要件により、Ubuntu で FTP サーバーを設定する実験を行う必要が...
1. データ整合性の概要1. データ整合性の概要データの冗長性とは、データベース内に重複したデータが...
複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...
私は最近countlyに触れて、慣れてきました。私は、必要に応じてcountlyのクラッシュプラグイ...
目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...
この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...
Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...
目次序文1. リスナーの基本的な使い方2. リスナー形式3. ページに入るとすぐに監視とディープモニ...
# には位置情報が含まれます。デフォルトのアンカーは #top で、これは Web ページの上部です...
回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...
要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...
このデータベース クエリ ステートメントは、インターネット上の 50 個のデータベース クエリ練習問...