導入 パート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ブリッジメソッドの手順
WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...
静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...
easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...
さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...
このプロジェクトは最近テストされ、テスターから、トークンの有効期限が切れたため、ルートが自動的にログ...
目次1. 理解2. 使用1. h() パラメータ2. 使い方が簡単3. カウンターケースを実装する4...
Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...
まずdockerコンテナを実行しますルートユーザーとしてコマンドを実行する sudo docker ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...
1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...
Apache Arrow は、BigQuery を含むさまざまなビッグデータ ツールで使用される一...
システムをコンピューターにインストールする方法がわからない場合は、Linux を学習したい場合は、仮...
目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...
基本的な使い方 <!DOCTYPE html> <html lang="...
ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...