MySQL中介軟體總結
MySQL中介軟體總結
1、前言
MySql 作為網際網路公司都會用到的資料庫,如果在使用過程中出現效能問題,會採用mysql的橫向擴充套件,使用主從複製來提高讀效能,要是解決寫入問題,需要進行分庫分表。本文不會去介紹MySql 的高可用,需要了解Mysql高可用架構相關的請戳 淺談MySQL叢集高可用架構 , 本文 主要介紹mysql的訪問中介軟體(DAL)的一些實現方案。
2、Atlas
官網:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md
2.1.atlas簡介
Atlas是由 Qihoo 360公司Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的資料中間層專案。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,新增了很多功能特性。目前該專案在360公司內部得到了廣泛應用,很多MySQL業務已經接入了Atlas平臺,每天承載的讀寫請求數達幾十億條。同時,有超過50家公司在生產環境中部署了Atlas,超過800人已加入了我們的開發者交流群,並且這些數字還在不斷增加。
2.2.atlas架構
Atlas是一個位於應用程式與MySQL之間中介軟體。在後端DB看來,Atlas相當於連線它的客戶端,在前端應用看來,Atlas相當於一個DB。Atlas作為服務端與應用程式通訊,它實現了MySQL的客戶端和服務端協議,同時作為客戶端與MySQL通訊。它對應用程式遮蔽了DB的細節,同時為了降低MySQL負擔,它還維護了連線池。
2.3、主要功能
1.讀寫分離
2.從庫負載均衡
3.IP過濾
4.自動分表
5.DBA可平滑上下線DB
6.自動摘除當機的DB
Atlas相對於官方MySQL-Proxy的優勢
1.將主流程中所有Lua程式碼用C重寫,Lua僅用於管理介面
2.重寫網路模型、執行緒模型
3.實現了真正意義上的連線池
4.優化了鎖機制,效能提高數十倍
3、Mysql router
官網:http://dev.mysql.com/doc/mysql-router/en/
3.1、mysql router簡介
MySQL Router是mysql官方釋出的資料庫中介軟體,是處於應用client和dbserver之間的輕量級代理程式,它能檢測,分析和轉發查詢到後端資料庫例項,並把結果返回給client。是mysql-proxy的一個替代品。其架構圖和功能如下。
3.2、mysql router架構
-
1.Router實現讀寫分離,程式不是直接連線資料庫IP,而是固定連線到mysql router。 MySQL Router對前端應用是透明的。應用程式把MySQL Router當作是普通的mysql例項,把查詢發給MySQL Router,而MySQL Router會把查詢結果返回給前端的應用程式。
-
2.從資料庫伺服器故障,業務可以正常執行。由MySQL Router來進行自動下線不可用伺服器。程式配置不需要任何修改。
-
3.主資料庫故障,由MySQL Router來決定主從自動切換,業務可以正常訪問。程式配置不需要做任何修改。
MySQL Router讀寫分離原理:
MySQL Router接受前端應用程式請求後,根據不同的埠來區分讀寫,把連線讀寫埠的所有查詢發往主庫,把連線只讀埠的select查詢以輪詢方式發往多個從庫,從而實現讀寫分離的目的。讀寫返回的結果會交給MySQL Router,由MySQL Router返回給客戶端的應用程式。
3.3.mysql router主要功能
MySQL Router的主要用途是讀寫分離,主主故障自動切換,負載均衡,連線池等。
4、Mycat
4.1、mycat簡介
-
一個徹底開源的,面向企業應用開發的大資料庫叢集 -
支援事務、ACID、可以替代MySQL的加強版資料庫 -
一個可以視為MySQL叢集的企業級資料庫,用來替代昂貴的Oracle叢集 -
一個融合記憶體快取技術、NoSQL技術、HDFS大資料的新型SQL Server -
結合傳統資料庫和新型分散式資料倉儲的新一代企業級資料庫產品 -
一個新穎的資料庫中介軟體產品
4.2、mycat架構
4.3、mycat主要功能
-
支援SQL92標準
-
遵守Mysql原生協議,跨語言,跨平臺,跨資料庫的通用中介軟體代理。
-
基於心跳的自動故障切換,支援讀寫分離,支援MySQL主從,以及galera cluster叢集。
-
支援Galera for MySQL叢集,Percona Cluster或者MariaDB cluster
-
基於Nio實現,有效管理執行緒,高併發問題。
-
支援資料的多片自動路由與聚合,支援sum,count,max等常用的聚合函式。
-
支援單庫內部任意join,支援跨庫2表join,甚至基於caltlet的多表join。
-
支援通過全域性表,ER關係的分片策略,實現了高效的多表join查詢。
-
支援多租戶方案。
-
支援分散式事務(弱xa)。
-
支援全域性序列號,解決分散式下的主鍵生成問題。
-
分片規則豐富,外掛化開發,易於擴充套件。
-
強大的web,命令列監控。
-
支援前端作為mysq通用代理,後端JDBC方式支援Oracle、DB2、SQL Server 、 mongodb 、巨杉。
-
支援密碼加密
-
支援服務降級
-
支援IP白名單
-
支援SQL黑名單、sql注入攻擊攔截
-
支援分表(1.6)
-
叢集基於ZooKeeper管理,線上升級,擴容,智慧優化,大資料處理(2.0開發版)。
5、Cobar
5.1.cobar簡介
5.2.cobar架構
5.3、cobar現狀
6、Amoeba
6.1、amoeba簡介
6.2、amoeba架構
6.3、amoeba現狀
7、Mysql proxy
7.1.mysql proxy簡介
7.2、mysq l proxy現狀
mysql proxy架構實戰 ProxySQL+Mysql實現資料庫讀寫分離實戰
8、客戶端分片
8.1、客戶端分片簡介
8.2、優點
9、後記
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ),註明新增緣由 ● 於 2020-02-01 06:00 ~ 2020-02-31 24:00 在西安完成 ● 最新修改時間:2020-02-01 06:00 ~ 2020-02-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班: http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁: https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2675514/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql中介軟體 oneProxy的使用總結MySql
- MySQL中介軟體MySql
- 中介軟體漏洞攻防學習總結
- Web中介軟體常見漏洞總結Web
- 常用的MySQL中介軟體網址彙總MySql
- MySQL中介軟體--ProxySQLMySql
- MySQL中介軟體之ProxySQLMySql
- 業務中介軟體設計方法論經驗總結
- KingShard MySQL中介軟體快速入門MySql
- RocketMQ訊息中介軟體詳解(萬字圖文總結)MQ
- 訊息中介軟體之RabbitMQ關鍵知識點總結MQ
- Redis中介軟體與Web中介軟體RedisWeb
- MySQL cetus 中介軟體 讀寫分離MySql
- 中介軟體之訊息中介軟體-pulsar
- MySQL中介軟體之ProxySQL(14):ProxySQL+PXCMySql
- 軟體工程總結軟體工程
- 開源 | MySQL資料傳輸中介軟體—DTLEMySql
- Mycat中介軟體實現Mysql資料分片(上篇)MySql
- Mycat中介軟體實現Mysql資料分片( 下篇)MySql
- redux中介軟體Redux
- Laravel 中介軟體Laravel
- 中介軟體(middleware)
- Django——中介軟體Django
- ThinkPHP 中介軟體PHP
- 中介軟體漏洞
- 中介軟體-NginxNginx
- django中介軟體Django
- 中介軟體整理
- golang 中介軟體Golang
- 什麼是中介軟體?Linux常用中介軟體都有哪些?Linux
- 天池中介軟體大賽百萬佇列儲存設計總結【複賽】佇列
- 資料庫系列: 主流分庫分表中介軟體介紹(圖文總結)資料庫
- MySQL中介軟體之ProxySQL(1):簡介和安裝MySql
- 中介軟體是什麼?Linux中介軟體是什麼意思?Linux
- 理解Redux中介軟體Redux
- 理解Express中介軟體Express
- Sanic middleware – 中介軟體
- 聊聊 koa 中介軟體