前回の記事では、並行性の高いシナリオの高負荷の下でnginxの使用方法を説明し、バックグラウンドサービスの負荷分散を実行します。アリクラウドCentOSに上の設定nginxの+ uwsgi +負荷分散構成ではなく、そうするに一度、すべてのためのものであることとは思いません、データサービス層、データアクセス層に、または伝統的なデータ構造の場合、またはデータベースがダウンし、結果はさらに悲惨である場合には単に、単一のサーバの負荷に非常に多くのデータベース接続を頼って、データベースは、崩壊にバインドされています。Redisの、資金が巨大であれば、共有するために、クラスタMySQLサービスを正立を考えるようにバインドされます。この時点で、我々は、データキャッシュとして優れた技術を使用して、コードを最適化するために、良いコードのフレームワークを使用している間、データベースへの接続を削減する方法を検討しますメインデータベースの圧力。今日は、データベースのストレスを軽減、MySQLのマスター・スレーブ構成を使用して要約し、分離を読み書きします。
明確な目的、MySQL Clusterの展開は、メイン1から戦術を使用して、メインのライブラリを使用して、書き込み動作は、ライブラリからリアルタイムでデータを同期するための主なライブラリは、ビジネスは、ライブラリから読み込むための責任があるので、別の読み取りの目的を完了すると書き込み。
同期は、ライブラリー、I / Oスレッド、スレッドSQLからの二つのスレッドを生成するからMySQLのマスター原理は簡単である;のI /メインライブラリ(バイナリログ)、そして得られたログにO要求バイナリログスレッドは、中継バイナリログを書き込みます。 (リレーログ)ログファイルを、一次ライブラリーは、スレッドが合格O / IをBINLOGために使用されるライブラリーから、ログ・ダンプ・スレッドを生成します。
SQLスレッドは、リレーログログファイルを読み取り、そして一貫したマスタ・スレーブ動作を実現する具体的な動作に解析され、一貫性の最終的なデータ。
まず、2台のアリのクラウドサーバー、ホスト(マスター)として1を用意し、スレーブ(スレーブ)として、mysql5.7をインストールされています
マスターサーバーに
MySQLは、以下の設定を追加、設定ファイルのvimな/etc/my.cnfを変更します
サーバID = 1 innodb_flush_log_at_trx_commit = 2 sync_binlog = 1つの ログ -bin = MySQLのビン1
設定手順:
(idは簡単に自分の設定することができますが、idとスレーブが同じでないことを確実にするために)メインサービスIDを設定します。#
= 1つのサーバID
#セット1が最も安全なコースですが、パフォーマンスは、他の2つのパラメータに対する相対(最悪です言葉が、容認できません)。あなたは、データの一貫性と整合性を求めていない場合は、このような高い同時書き込みログサーバとしてのみ最も性能要件は、高性能取得するために0に設定されている場合、2に設定することができ
innodb_flush_log_at_trx_commit = 2
#オープンのbinlog-とステップ関数
sync_binlogを1 =
#binlogログファイル名
ログのMySQL-ビン・ビン= 200
これは(これはすべてのライブラリの同期を示していない場合)のみ、ライブラリを同期することを示している。#
ビンログ-DO-DB = XXXX
保存された後は、再起動のMySQL
systemctl再起動mysqldを
あなたのパスワードを-p -uroot mysqlコマンドラインのmysqlを入力します。
authorizationコマンドを入力します。
GRANT REPLICATION SLAVE ON *。*に' REPL ' @ ' %を'で識別さ" Admin123!" ;
すべてのスレーブが!REPLアカウントとパスワードデータAdmin123でマスターを同期することができることを意味
そして、マスターのステータスを確認します
マスターのステータスを表示。
この時点で、マスター構成は、既にスレーブ(スレーブ)でログインし、行われています
同様に注目すべきである以下の構成を追加な/etc/my.cnfスレーブMySQLサーバ構成VIMを変更すること、サーバIDとしないマスタとして
サーバID = 201 innodb_flush_log_at_trx_commit = 2 sync_binlog = 1 ログ -bin = MySQLのビン-201
サービスを再起動して保存した後mysqldを再起動しsystemctl
あなたのパスワードを-p -uroot mysqlコマンドラインのmysqlを入力します。
コマンドを入力します。
= MASTER_HOSTする変更マスタ' 39.106.228.179 '、master_userは= ' REPLを'、master_password = " Admin123!'MASTER_LOG_FILE = ' mysqlの-bin.000002 "、MASTER_LOG_POS = 154
コマンド説明:
MASTER_HOST:ホストのIP
。MASTER_USER:ホスト許可されたユーザー
master_passwordは:パスワード認証を記入する際、ホスト
MASTER_LOG_FILE:ホストショーマスターのステータス、ファイル
MASTER_LOG_POS:ホストのショーマスターのステータス、位置インチ
スレーブを起動するコマンドを入力します。
スレーブを起動します。
その後、我々は、スレーブがデータを同期させることができるかどうかを確認するために、マスタ書き込みのためにテストすることができます
もちろん、個別の読み取りとデータの一貫性が高いシーンのリアルタイム要件場合は、一定の潜伏から、異なるアプリケーションのシナリオに応じて設定からMySQLのレプリケーションマスタを異なるポリシーを選択し、メインのmysqlない万能薬を書きますお勧めできません。