MySQLのミドルウェアシェア(Mysqlの-prxoy、アトラス、DBProxy、アメーバ、コバー、TDDL)

みなさんこんにちはジュニアパートナーみなさん、こんにちは、私はこの問題では、我々はつまり、MySQLのミドルウェアの研究を共有し、データ層の分離と負荷分散を読み書き、あなたに実用的なアプリケーションで小さなパートナーを助けることができることを期待して、小さなスタック君主です。

我々はシリーズを共有していきます次の問題は、その後の人生で言語を説明するために行く、と同様に、我々はまた、その上のビッグデータ、人工知能、ブロック鎖とを含む、私たちを私たちは小さなパートナーの側に学び、共有できるという希望をたくさんのコースを共有します一緒に進歩と成長を持ちます。

mysqlのプロキシ

接続要求を担当しているMySQLのプロキシは、このような中間層プロキシで、簡単に言えば、MySQLのプロキシは、接続プールでフォアグラウンドアプリケーションのバックグラウンドのデータベースに転送されます、とのluaスクリプトを使用することにより、あなたは複雑な接続制御やフィルタリングを実装することができます。

別々の読み取りと書き込みとロードバランシングを有効にします。アプリケーションでは、MySQLのプロキシMySQLのプロキシは、「読み書きの分離」を実現するために、より強力な機能に対して完全に透過的であるが、基本的な原理は、主がトランザクションデータベースのクエリを処理できるようにすることです。

示すように、その実行の流れ:

ファイル

ライブラリからSELECTクエリ処理をしてみましょう。データベースの複製が原因ライブラリからクラスタへの同期の変更にトランザクションを照会するために使用されます。

MySQLのプロキシMySQLの公式ミドルウェアは、ロードバランシング、別の読み取りおよび書き込み、およびその他のフェイルオーバーを提供することができますが、それはデータサブライブラリサブテーブルと、パフォーマンスの低下を大量にサポートしていません。

公式サイト:
https://downloads.mysql.com/archives/proxy/

ここではMySQLのオープンソースのミドルウェア製品を置き換えることができるいくつかあり、アトラスは、コバーは、TDDL、見てみましょう何を、それぞれの利点とそれの新機能の一部。

アトラス
アトラスはQihooは360、データ項目の層間のMySQLプロトコルのウェブプラットフォーム事業本部インフラチーム開発とメンテナンスで構成されています。

いくつかの新機能を追加し、それが最適化されて、上のmysql-proxyの0.8.2バージョンに基づいています。アトラス360内部のMySQLサービスの操作、十億の1日当たり実行要求を読み書きします。

出典:
Githubの:https://github.com/Qihoo360/Atlas

しかし、アトラスは、ほとんどのビジネスニーズを満たすことができましたので、最新のニュースによると、その更新を停止しなければなりませんでした。

ファイル

アルタスアーキテクチャ:

ファイル

アトラスは、クライアントとMySQL通信の両方として、アプリケーション・サーバとの通信のように、MySQLのクライアント - サーバプロトコルを実装するアプリケーションとMySQL、の間に配置されています。

これは、アプリケーションのDBの内容を保護し、およびMySQLの負担を軽減するためには、接続プールを維持します。

新機能アルタスのいくつか:
1、アトラスは、自動的にメインライブラリをダウン取り外し、メインライブラリーを下に読むためにダウンメインのライブラリには影響しません、書き込み操作が失敗したが、操作は影響を受けませんお読みください。ライブラリーからのダウン、自動的にライブラリから削除アトラスがダウンして、アプリケーションに影響はありません。ダウンメインライブラリ内のMySQLの公式代理で、またライブラリーから入手できます。

管理インタフェースを介して2、オフライン手動ながら、アプリケーションに対して完全に透過的管理作業、上下DBを簡単にします。

3.リードと別リードの存在を解決し、読み書き一度書き込むためにそれらの分離を、書き込み時間を望ん前にマスタ-スレーブ同期遅延は、アルタス/ SQL文を増加させることができる場合があるマスター /読み出し要求を必須とすることができますメインライブラリに。カンマで区切られたマスターライブラリのセット番号は、負荷分散を実現するためのライブラリと重みの数から提供することができます。

4.必要なサブテーブルのフィールドで、彼のサブテーブルを実現します。そして、REPLACE文、DELETE、SELECT、INSERT、UPDATEをサポートしています。最後に、複数のサブクエリ結果のテーブルをマージしてソートをサポート。

ここでは、子テーブルとすべてのサブテーブルのすべてのデータベースDBのと同じテーブルで事前に完了しなければならない、Tucaoポイントテーブル機能アトラスは、分散型のポイントテーブルを達成することはできません持っている、アトラスは、自動的にメニューを作成しません。

C、QPS(特定のクエリ・サーバのトラフィック対策のためにどのように処理の多く指定された時間内に)増加し、レイテンシー(到着する発行された命令に書き換え使用前のluaスクリプト5で書かれた主な公式の機能ロジック、低効率、アトラス経過時間)に減少。

6.セキュリティを強化:障害者パラメータの設定ファイルアクセス制御介して接続されたアトラスのユーザー。IPはアトラスによってフィルタリングされたクライアント-IPSのパラメータを接続する権限を持っています。

ログは、IPクライアント、文のDB実際の実行、実行成功を含め、すべてのSQL文アルタスプロセスを記録し、時間が実行にかかっ

7. GRスムーズな再起動機能は、そうでない場合は、これらのSQL要求は失敗しますアルタス瞬時に再起動し、設定ファイル内のLVS-IPSのパラメータを提供します。

DBProxy

米国ミッションDBAチームの技術的な技術開発によってDBProxyレビューのMySQLプロトコルの中間層によって維持(北京)のデータ。また、オープンソースのアトラス基礎Qihooは360の企業、バグの一部を変更すると、多くの機能を追加しました。

ファイル

現在DBProxyは広くgithubの、オープンソースと内部的に一貫しに行く包括的なDBProxyを開発し、持ち帰りを、米国のグループの賃金、ホテル、観光を含め、米国のグループのレビューで使用購入し、企業内の他の製品ライン。現在、唯一のMySQL(Percona)5.5および5.6をサポートしています。
主な特長:

別々の読み取りと書き込み

ライブラリのロードバランシングから

IP过滤

分表

DBA可平滑上下线DB

自动摘除宕机的DB

监控信息完备

SQLフィルタ

ライブラリーからのトラフィックを設定します

DBProxyを使用した後、アプリケーションは、接続文字列DBProxy、データベース全体が懸念する必要がないノードクラスタ内のアドレスを設定する必要があります。

DBProxy内部負荷分散、別々の読み取りと書き込み。

マウス操作の自動化システムのDBAの動作点によって、オフライン上のスレーブを完成させることができます。

これは、大幅にDBAの作業やアプリケーション開発者が減少、しかしDBProxyなしRDにより、これらの作業は、達成するために、DBProxyの管理とシステムの利便性の導入のために非常に大きな助けを持っています。

DBProxyの改善がベースとQihooは360のオープンソースアルタスは、公式文書上のポイントの改善を示しています。

提供了丰富的监控信息,大量参数可配置化并且支持动态修改

对原有的诸如日志等模块进行了优化,性能提升明显

开源版本即为目前美团点评内部使用版本,并将一直对源码及其文档进 行维护

开源地址:
https://github.com/Meituan-Dianping/DBProxy

アメーバ

アメーバは、基礎となるデータ・ストアとしてに対するMySQLであり、MySQLアプリケーションプロキシプロトコルインタフェース。これは、アプリケーション要求、予め設定されたルールに従ってユーザ、特定のデータベースへのSQL実行要求に応答して濃縮しました。

この負荷分散に基づき、個別の読み取りと書き込み、および高可用性の要件を達成することができます。公式のMySQLのMySQLのプロキシと比較すると、著者はアメーバの便利な設定(MySQLのプロキシベースのluaスクリプトよりも簡単SQLJEP文法書き込みルールをXMLベースの設定ファイル、)ことを強調する。

アメーバSQLは、負荷分散のために、ルータに対応する独立した読み取りおよび書き込み要求の高可用性のためのメカニズムを提供し、それらが完全に実現されていません。

ユーザーは、レプリカの同期を達成するためにMySQLのレプリケーションおよびその他のメカニズムを併用する必要があります。基礎となるデータベースの接続管理およびルーティングメカニズムへのアメーバは、クラスの代わりに実装され、より高度な戦略を開発することができ、プラグイン可能な、第三者を達成するために使用されます。

アメーバの利点:

A)。複雑なデータソースデータ分割統合後

B)。エフェクトデータセグメンテーションルールを提供し、データベースをもたらすために、データのセグメンテーションルールを減らします

C)。下げクライアントのデータベース接続

D)。ルーティング別々の読み取りおよび書き込み

アメーバ短所:

a)は、まだサポートされていません総務

b)は、長期的なサポートの近くにストアドプロシージャを()をサポートしていません。

c)は、データクエリまたはクエリの大量(例えば)データの場合よりも10ワットも多くを戻すための要求として適切でないアメーバシーンからのデータを行うには適していません

D)、サブライブラリーサブテーブルをサポートしていない、アメーバは現在、サブデータベースのインスタンスを実行し、各ノードは、一貫性のあるデータベースのテーブル構造を維持する必要性をスライスしています。

公式サイト:
http://wiki.hexnova.com/display/amoeba/Home

残念ながら、昔から、最後の更新サイトは、2012年に位置しています

ファイル

alibaba.cobar

ファイル

コバーアリババ(B2B)部門は、リレーショナルデータの分散処理システムを開発し、それが分散環境での大規模なデータ・サービスをご提供したい、従来のデータベースのように見えることがあります。では、なぜ我々はそれについて話を具体的に使用し、またはcobar--はあなたが行うことができると言うのですか?

cabarの利点の概要:

分散型変更への集中から、アクセスデータ:

コバー水平支持台は、レベルの分解能を達成するために、別のデータベース・テーブルに複数の部分に分割しました

コーバーはまた別のライブラリに異なるテーブルをサポートしています

ほとんどの場合、ユーザーは、上記の2つの方法が組み合わせて使用​​することに注意します!:コバーがテーブルをサポートしていない、例えば、テストテーブルは、同じライブラリに、あなたが分散実装する別のライブラリに分割した後に見なければならない..... TEST_1、TEST_2、test_3に分割。

接続の過剰な数の問題を解決します。

ビジネスコードのための低侵襲性。

手動で異常が検出された後コバー文が自動的にトリガされたハートビートをトリガするユーザのための2つのアクティブスイッチングトリガ方法の(1)コバー:データノードのフェイルオーバー、HAを提供します。

ホストが回復したときに、ハートビート準備マシンは例外を返さない限りそして、異常な心拍ホストに、スタンバイ機に切り替え、ホストの復旧た場合、手動でホストに戻す作業を削減することをユーザーに要求し、コーバーのは、自動的に、ホストに戻りません。

MySQLをチェックコバーに唯一の例外をスタンバイ、主の間でデータの同期を気にするので、ユーザーは、スタンバイコーバーMySQLの双方向の同期で前の設定を使用する必要はありません。

コバー欠点:データベースのオープンソース版のみMySQLをサポートし、別の読み取りと書き込みをサポートしていません。

TDDL(コアコードは、オープンソースではありません)

淘宝、それらの動作特性に従って開発TDDL(淘宝分散データレイヤーニックネーム:大きな頭)フレームワークは、主に基づいている異種データベースとアプリケーション透明間のデータ複製のためのサブライブラリーサブテーブルを解決するためにJDBCデータソースは、集中構成、メインとバックアップ、別個の読み取りおよび書き込み、動的データベース構成機能を実現しました。

TDDL位置位置(指定されたSQLデータベースへのユーザの経路について、クライアントjarパッケージに配備TDDLユニバーサルデータアクセス層):

淘宝網は、データへの統一されたアクセスへのルートのDBRoute真ん中と呼ばれる、複数のデータベースを接続する上位システムのデータライブラリを処理するには長すぎます。

DBRouteは、データ、マルチデータベースのデータの統合に動作するように複数のライブラリを操作するようにデータベースを操作するような上位システム。データの量が増えるとともにしかし、ポイントシステムのためのデータベーステーブルは、より高い要件があります。
例えば、ライブラリーのいずれかに保存され、その後、分割することはできません百億レベルに商品データ、2、4、8、16、32 ...... 1024、2048まで。

これだけのデータを格納することができに、そしてどのようにそれを照会?

この時点で、ミドルウェアは、データのクエリは、この重荷を運ぶことができるようになり、その上層には、同じデータを照会するデータベースを照会するようなことはなく、しなければならないにもほど高速なデータベースクエリ(各クエリが数ミリ秒以内に完了されます) 、このような作業に着手するTDDL。

主な利点:

スタンバイ・データベースと動的スイッチ

重量別々で読み取りと書き込み

シングルスレッドリードリトライ

集中化されたデータソース情報の管理と動的な変更

安定したJBossのデータソース

MySQLとOracleデータベースのサポート

JDBCベースの仕様は、容易にデータソースの達成JDBC仕様をサポートするように拡張することができます

いいえ、サーバー、クライアントのjar形式が存在し、直接アプリケーションデータベースません

読み取りおよび書き込み時間を、同時実行プロセス制御、動的に変更10.ログが動的TDDLを変更、印刷ログフロー制御を分析することができるダイヤモンドの流通センターを頼らなければならない(ダイヤモンドは、システム管理内部淘宝で耐久性の構成、現在の内部淘宝絶対を使用ダイヤモンドは、オープンソースを持っていながら、ほとんどのシステム)は、ダイヤモンドによる一元管理を実行するように構成されています。

出典:
https://github.com/alibaba/tb_tddl

TDDLの複雑性は比較的高いです。そして荒廃に陥っています

ファイル

唯一のオープンソースの動的なデータソースによって公開少ない現在のドキュメントは、サブテーブルのサブライブラリーセクションでは、まだ開いていないですが、また、ダイヤモンドに頼る必要が、推奨されません。

今日のシェアは、あなたがトラブルの私の分け前を好む場合は、もう一度共有をクリックするか、コメント、最後に来て、ここに行って、私はXiaozhan王だった、我々は、礼拝のおかげで、次の問題を参照してください -

ブログ記事複数のプラットフォームからこの記事OpenWriteリリース!

おすすめ

転載: www.cnblogs.com/it-carry/p/11669409.html