フルタイムDBA-MySQLのDAL(データアクセス層)ミドルウェアの概要

MySQLのDAL(データアクセス層)ミドルウェア要約

DALは、データアクセス層の略で、データアクセス層(データアクセス層)です。ミドルウェア紙は、MySQLへのアクセスを記述しているので、特に適切であることが、また、DALのカテゴリに属していないことがあり、ここで使用します。この記事では主にMySQLの規模に焦点を当て、関連する知識の高可用性、に行くことはありません。

私たちは、マスターによって読み取りパフォーマンスの拡張を実現することはありません、拡張の最も単純な種類は、MySQLマスタースレーブのレプリケーションであることを知っているが、そのような拡張には制限がありますが、書き込みの問題を解決していないだけではなく。現在、市場に出回っているソリューションの3種類と:

1 。クライアントスライス(推奨)
プログラムのクライアントサブライブラリーサブテーブル。これは、例えば、ユーザ・テーブルのプログラムで、すなわち直接および分割データベーステーブル。最後によれば、0に分割することができ、ユーザのUIDは、たとえば13678789のために、-データベース10の9、尾数がSELECTである場合尾番号が、データベースdb_user_1 1に格納され、データベースdb_user_0 0に格納されます。同じ。次いで、最後から2番目の位置に応じて、それが0から分割することができる- 最後から二番目の尾数に応じて、対応するテーブルに書き込まれ、表10の9。このUID 13678789などの情報、およびデータベーステーブルがtable_user_8でdb_user_9書き込みます。

2つのミドルウェアへの各種データ:
 2.1 MySQLの- プロキシ(強くお勧めしませんが)
私は、あなた自身のMySQLは、MySQLプロキシについてお話しましょう:プログラムは、MySQLデータベースのクライアントとサーバの間にある、それはまた、埋め込まれたスクリプト言語をサポートしていますLuaの。この薬剤は、分析データ通信を監視し、変換(変換)するために使用することができます。

MySQLのプロキシの最も強力な機能を実現することである「別の読み取りと書き込み(読み取り/書き込み分割を)。」基本的な原理は、主がトランザクションデータベースのクエリ、SELECTクエリからデータベース処理を処理させることです。データベースの複製は、同期からクラスタデータベースへの結果のトランザクションの変更を照会するために使用されます。

2.2 (ない強く推奨)アトラス
アトラスは、データ項目のMySQLプロトコルの中間層を維持するために、省Qihooは360の企業Webプラットフォームインフラストラクチャチームによって開発されました。これは、MySQLのMySQLの公式発表です-プロキシ0.8ベーシス0.2版、バグの修正された大規模な数に基づいて、機能の多くを追加しました。現在、360企業内のプロジェクトが広く使用されてきた、多くの企業は、MySQLアトラスプラットフォーム、億を運ぶの毎日数十を読み書きする要求の数へのアクセス権を持っています。同時に、運用環境に展開、50社の以上の企業がありますが、アトラスは、800以上の人々が私たちの開発者交換グループに参加している、その数は増加しています。

主要功能:
    读写分离
    从库负载均衡
    IP过滤
    自动分表
    DBA可平滑上下线DB
    自动摘除宕机的DB

简单的说是在MySQL Proxy的基础上做了二次开发,并支持了自动分表的特性。但是仅支持非常有限的rang进行分表。目前有先的分支Atlas Sharding来实现更多的功能。

具体的功能清看Github,非常详细。
https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md

2.3 Cobar(不强烈推荐)
Cobar是阿里巴巴开源的一个,提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明。
    产品在阿里巴巴稳定运行3年以上。
    接管了3000+个MySQL数据库的schema。
    集群日处理在线SQL请求50亿次以上。
    集群日处理在线数据流量TB级别以上。

详情:https://github.com/alibaba/cobar/wiki

2.4 MyCAT(不强烈推荐)
MyCAT基于阿里开源的Cobar产品而研发的,目前社区相对比较活跃,功能也是最多的一个MySQL中间件。
    什么是MYCAT?
    一个彻底开源的,面向企业应用开发的大数据库集群。
    支持事务、ACID、可以替代MySQL的加强版数据库。
    一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群。
    一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server。
    结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。
    一个新颖的数据库中间件产品。

3.MySQL集群
3.1 MySQL Cluster(强烈不推荐)
MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。几乎无应用案例,不推荐。

3.2 Percona XtraDB Cluster方案(推荐)
Percona XtraDB Cluster简称PXC。Percona Xtradb Cluster的实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi-master的集群架构。

上图中有三个实例,组成了一个集群,而这三个节点与普通的主从架构不同,它们都可以作为主节点,三个节点是对等的,这种一般称为multi-master架构,当有客户端要写入或者读取数据时,随便连接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步到其它节点上面,这种架构不共享任何数据,是一种高冗余架构。

以上为个人生产经验,不代表产品本身的相关利益,不过还好了,都是开源的,大家可以根据自身情况选择。你会发现并没有强烈推荐的方案,主要是大家要考虑自身业务的情况进行选择,例如核心业务。连主从切换都不推荐自动,而是手动,宁愿业务不能访问,也不能出现自动主从切换导致数据丢失。

 

おすすめ

転載: www.cnblogs.com/zhouwanchun/p/11261938.html