MySQL - アメーバをベースにした読み書き分離の詳細説明(写真と文章)

黄舟
リリース: 2017-03-14 16:44:50
オリジナル
1577 人が閲覧しました

今日は MySQL の話題の続きです。今日は、Amoeba に基づいて MySQL の読み書き分離を実現するソリューションに関する記事をお届けします。それでは、今日のトピックに直接進みましょう。

1. サーバー計画

ホスト名 IPアドレス ノード
liuyazhuang152 192.168.0.152 amoeba
liuyazhuang153 192.168.0.153 ライティングライブラリ
liuyazhuang154 192.168.0.154 ライブラリを読む

2. テスト計画

amoeba を 192.168.0.152 にインストールし、mysql を 192.168.0.153 と 192.168.0.154 にインストールしました。amoeba を設定することで、mysql を書き込みデータベースとして設定します。 192.168.0.154 上の MySQL を読み取りデータベースとして使用します。クライアントはアメーバに接続し、アメーバがデータベースを操作します。アメーバを通じて対応するデータベースにデータを書き込み、 を通じてクエリを実行します。MySQL には関連するデータが挿入されません。 192.168.0.154 の MySQL サーバーで利用可能です。すると、アメーバがプログラムの読み書き分離機能の完成に役立ったと考えられます

3. MySQL をインストールします

詳細なコードは、ブログ投稿「MySQL-CentOS6.5」を参照してください。 MySQL5.6.16のコンパイルとインストールの紹介》

IV. Amoebaのインストールと設定

1. Amoebaのダウンロード

Amoebaはhttps://sourceforge.net/projects/amoeba/からダウンロードできます。私がダウンロードしたのは、amoeba-mysql-binary-2.2.0.tar.gz

2. Amebaをインストールします

AmoebaはJavaで書かれているので、ここでは説明しませんが、Javaの動作環境を設定する必要があります。 . Javaの実行環境が構築されました

Amoebaの解凍直後にはファイルがないので、事前にフォルダーを作成する必要があります。ここでは/usr/localの下にamoeba-mysql-binary-2.2.0というフォルダーを作成します。

次に、コマンドラインで次のコマンドを入力します

tar -zxvf amoeba-mysql-binary-2.2.0.tar.gz  -C /usr/local/amoeba-mysql-binary-2.2.0
ログイン後にコピー

。Amoebaを/usr/local/amoeba-mysql-binary-2.2.0ディレクトリに解凍します。この時点でインストールは完了です。

3. Ameba を設定する

Amoeba の conf ディレクトリに次の

設定ファイル があります:

ここでは、amoeba.

xml と dbServers.xml ファイルに焦点を当てます。

3.1 amoeba.xml を設定する


amoeba.xml ファイルを開き、次のコードを見つけます:


ユーザー名とパスワードを設定します。そのうちの 8066 は Amoeba のデフォルトのポートです。は次のとおりです:

次のコードを見つけます:

コメント を削除すると、次のような効果が得られます:


設定後のアメーバ ファイルは次のように構成されます。 , mysql にアクセスするときは、amoeba.xml にアクセスする必要があります。ファイルに設定されているポート、ユーザー名、パスワードは、Amoeba 経由で MySQL に接続するために使用されます。

3.2 dbServers.xml を設定する


dbServers.xml ファイルで次のコードを見つけます。

ここでは、関連するデータベースを設定しています。注意してください: これらのデータベースの設定では、読み取り対象となるデータベースとユーザーが指定されます。名前とパスワードは別々に記述され、端末上でアメーバにアクセスするためのユーザー名とパスワードが設定されます。変更後の効果は次のとおりです。

このときのユーザー名とパスワードは、MySQL サーバーにログインできるように、MySQL サーバーによって Amoeba サーバーに認証される必要があります。


次に、次のコードを見つけます:


以下に示すように、これを 2 つの MySQL サーバーの IP アドレスに変更します:


この時点で、読み取りと書き込みの分離を構成しました。アメーバをベースにしています。

4. MySQL で Amoeba アクセスを承認します

2 つの MySQL サーバーにそれぞれログインし、次のコマンドを実行して Amoeba を承認します

 grant all on lyz.* to lyz@192.168.0.152 identified by 'lyz';
ログイン後にコピー

ここでのユーザー名とパスワードは、dbServers.xml ファイルで設定したユーザー名とパスワードです。この時点でMySQLの認証は完了です



5.アメーバを実行します


アメーバのbinディレクトリに入り、コマンドラインに以下のコマンドを入力してアメーバを実行します

./amoeba start &
ログイン後にコピー
ログイン後にコピー

このうち、&はバックグラウンドで実行していることを表しますこの時点で、起動に失敗したことがわかりました: 情報は次のとおりです:


これは、構成された Java スタックが小さすぎる (少なくとも 228K) ことを意味します。 bin ディレクトリに移動し、次のコードを見つけます:

上の図を変更します。以下に示すように、128K を 256K に変更します (実際の状況に応じて変更できます)。


此时我们重新输入命令

./amoeba start &
ログイン後にコピー
ログイン後にコピー


启动成功

6、测试

6.1 查询数据

我们先分别查询MySQL数据库表上的相关数据,未通过Amoeba操作数据库的时候,我们是新建的数据库lyz和表t1,此时192.168.0.153和192.168.0.154上MySQL数据表都应该为空,如下图:


6.2登录Amoeba

我们在192.168.0.152上输入如下命令登录Amoeba,通过Amoeba访问数据库

mysql -h192.168.0.152 -uroot -proot -P 8066
ログイン後にコピー

注意:我们这里输入的端口是8066,此端口是Amoeba配置的端口,我们需要登录Amoeba而不是直接登录MySQL

登录成功如下图所示:

6.3测试

此时我们在终端查询数据表数据,显示为空,如下图:


我们在Amoeba服务器终端插入一条数据,如下:


同时,我们在Amoeba上查询数据如下:


数据为空。

我们登录192.168.0.153数据库,查看表数据如下:


如图,说明Amoeba向192.168.0.153库插入了数据。

我们在登录192.168.0.154数据库查看数据信息,如下:

说明Amoeba没有向192.168.0.154库插入数据,并从192.168.0.154库读取数据。

至此,基于Amoeba实现MySQL读写分离全部配置完成。

五、附录

./amoeba start & 启动amoeba
./amoeba stop  关闭amoeba
ログイン後にコピー

以上がMySQL - アメーバをベースにした読み書き分離の詳細説明(写真と文章)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート