相關文章
資料庫系列:MySQL慢查詢分析和效能最佳化
資料庫系列:MySQL索引最佳化總結(綜合版)
資料庫系列:高併發下的資料欄位變更
資料庫系列:覆蓋索引和規避回表
資料庫系列:資料庫高可用及無損擴容
資料庫系列:使用高區分度索引列提升效能
資料庫系列:字首索引和索引長度的取捨
資料庫系列:MySQL引擎MyISAM和InnoDB的比較
資料庫系列:InnoDB下實現高併發控制
資料庫系列:事務的4種隔離級別
資料庫系列:RR和RC下,快照讀的區別
資料庫系列:MySQL InnoDB鎖機制介紹
資料庫系列:MySQL不同操作分別用什麼鎖?
資料庫系列:業內主流MySQL資料中介軟體梳理
1 背景
網際網路大廠的業務場景,業務流量的規模都可以達到千萬甚至億級別,這時候簡單的資料層連線和呼叫無法承接業務規模的需求。
需要資料庫中介軟體來管理一些中間橋接工作,類似 連線池、負載均衡、故障隔離、監控預警等工作,大幅度提高效能和穩定性,應對大流量的衝擊。
下面我們具體來看看,我們使用資料庫中介軟體具體解決哪些存在痛點的業務場景。
2 資料庫中介軟體解決的問題和實現方案
2.1 連線池管理
2.1.1 業務場景
客戶端連線無限制,不可複用,不可隔離,業務間互相影響(如單個服務超載呼叫可能導致雪崩)
2.1.2 解決方案
歸口到Proxy統一管理,提供連線池、連線數限制、重試、超時斷開保護等能力。
如上,各業務線統一讀寫訪問入口,所以業務連線池不會有
db1.read:3306,db2.write.com:3306
而是統一隻有
db.all:3306
Service服務對db的訪問,統一到一個入口上來了,由中間層來對請求進行智慧路由、連線池管理、限流、重試、超時等工作。這種模式解決了業務直接管理資料實現層的問題。
2.2 讀寫分離機制
2.2.1 業務場景
需要為業務提供讀寫分離機制,而不是由業務花費精力去維護
2.2.2 解決方案
資料服務存在主從部署模式,業務在路有時Porxy自動區分讀寫,寫路由到主儲存服務(master),讀路由到從儲存服務(slave)
對業務是透明的,業務開發的同學無需關注讀寫的隔離。
這邊可以看到,Proxy會自動將讀和寫操作分流,業務開發人員無需關注即可。
2.3 負載均衡策略
2.3.1 業務場景
需要為資料庫分片提供負載均衡機制,如果多個讀庫甚至多個寫庫,需要一定的負載策略,類似VIP
2.3.2 解決方案
歸口到Proxy統一管理,提供負載均衡能力,包括但不限於:
- 輪詢(Round Robin)
- 來源 IP 雜湊(IP Hash)
- 最少連線(Least Connection)
- 加權輪詢(Weighted Round Robin)
- 加權最少連線(Weighted Least Connection)
- 隨機策略
2.4 資料庫分庫分表sharding
2.4.1 業務場景
資料量比較大的場景下,需提供業務分庫分表能力
2.4.2 解決方案
呼叫方遮蔽分表細節,跟單表操作一直。Proxy實現對分庫分表的核心細節,不同大部分中介軟體會有一些限制(如帶分表欄位,不支援跨庫join等)
從上面的圖中可以看到,Proxy在邏輯表和物理表中間起橋接作用,開發同學不需要知道太多細節,也不需要改變訪問的SQL指令碼。
2.5 故障切換
2.5.1 業務場景
主/備發生異常、當機等故障,需業務來處理故障切換
2.5.2 解決方案
遮蔽後端DB故障問題,自動故障切換
-
master 故障,slave切換為master
-
slave 故障,多副本模式下進行異常副本的驅逐
-
slave 故障,單例項情況下讀寫都排程到master
2.6 安全保障等
常見問題 | 說明 | 解決方案 |
---|---|---|
許可權 | 1. 賬號許可權放太開,沒有最小化許可權; 2.機器遷移等都需手動申請許可權較麻煩 |
1. 透過user/pwds/ip等做許可權控制,最小化許可權。 2. 機器遷移自動許可權擴縮容。 |
安全 | 需業務自己處理sql注入,核心資料加密等問題 | Proxy增加一層保護機制,包含sql注入,sql黑名單(如sleep/drop),資料加密等 |
日誌審計 | MySQL 資料被修改了,無法確認被誰修改的 | 提供便捷的日誌審計,日誌流控和動態變更,方便定位查詢 |
2.7 監控和預警
2.7.1 業務場景
需業務根據自己需求搭建監控系統
2.7.2 解決方案
提供諸多監控和預警能力,包括但不限於:
連線數監測、慢查詢數統計、慢請求Sql採集、Sql語句統計、索引命中率分析、索引分析、DB負載、所屬主機效能分析
2.8 備份和恢復能力
2.8.1 業務場景
Proxy需要為業務提供備份能力,透過簡單配置即可,避免業務花費較大精力關注
2.8.2 解決方案
- 提供多種類備份策略,一鍵配置
- 全量備份
- 增量備份
- 備份模式
- 定時備份
- 手動備份
- 透過管控平臺功能快速恢復資料
- 指定範圍恢復,精確到表
- 指定時間恢復,精確到秒
參考以下備份流程:
3 總結
本文介紹了網際網路場景資料庫中介軟體主要解決的業務難題,後續有時間我們詳細介紹下下業內評價較高的幾種資料庫中介軟體,如 ProxySQL、 DBProxy、TDDL 等。