成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于網易MySQL中間件的負載均衡策略及性能優化

數據庫 MySQL
隨著業務的爆發式增長,電商系統中的讀寫壓力越來越高,單節點MySQL實例壓力越來越大,單純升級服務器硬件已經無法滿足生產環境的需要。解決讀請求壓力,需要支持從庫擴展;解決寫請求壓力,對數據分片增加多個節點,降低單節點MySQL實例的壓力成了更優的選擇。

團隊介紹

網易樂得DBA組,負責網易樂得電商、網易郵箱、網易技術部數據庫日常運維,負責數據庫私有云平臺的開發和維護,負責數據庫及數據庫中間件Cetus的開發和測試等等。

一、背景

隨著業務的爆發式增長,電商系統中的讀寫壓力越來越高,單節點MySQL實例壓力越來越大,單純升級服務器硬件已經無法滿足生產環境的需要。解決讀請求壓力,需要支持從庫擴展;解決寫請求壓力,對數據分片增加多個節點,降低單節點MySQL實例的壓力成了更優的選擇。

傳統的分片是通過DAO層進行的,但是DAO層對數據分片存在諸多問題。從業務角度看,配置修改需要重啟服務,代價巨大;需要對分片結果集進行處理,業務邏輯愈加復雜;功能相對簡單。從數據庫運維角度看,配置管理的統一化難度較大;DB的升級、遷移等操作復雜。

網易電商同樣面臨著這些問題,為了徹底解決數據庫瓶頸,網易樂得團隊在實際生產中研發了自己的中間件Cetus。其具有正統基因,基于官方MySQL-Proxy的版本進行全面修復和再創新,已于不久前開源,在各個產品線上得到廣泛應用,性能和穩定性均表現良好。

Cetus兼容MySQL協議,前端應用不用修改即可通過Cetus訪問數據庫,方便DBA運維同學和開發同學使用,實現了數據庫層面的橫向擴展。

目前Cetus有讀寫分離和Sharding兩個版本,可通過編譯參數選擇適合的版本。它支持對用戶透明的多項功能,例如分布式事務、連接池、結果集壓縮、安全管理、狀態監控、Tcp Stream傳輸等等。

二、負載均衡策略及性能優化

本文所討論的負載均衡,指的是讀流量的負載均衡,即讀流量如何分配到后端同一MySQL集群內的各個DB。

Cetus的負載均衡策略,主要分為兩部分:

  • 主從庫之間讀流量的負載策略;

  • 從庫之間讀流量的負載策略。

具體實現時候,流量的分配單位與Atlas等中間件也略有不同,進行了性能優化。下面章節將依次詳細介紹。

1、主從庫之間讀流量的負載策略

默認情況下,非事務中、未通過注釋強制路由主庫或未使用鎖的讀流量會優先路由到從庫,各個從庫之間負載均衡。只有當從庫都不可用時,讀流量才會路由到主庫。

有些業務場景下,主庫可以分擔部分讀流量,這時就涉及到讀流量在主庫和從庫上配置負載策略了。

Cetus中,可以通過配置參數read-master-percentage來指定默認的讀流量路由到主庫的百分比,該參數的取值范圍是[0, 100]。

該值默認為0,即所有讀流量會優先路由從庫,所有從庫均不可用時,才會路由主庫;如果該參數設置為100時,則所有讀流量都會路由到主庫;如果該值設置為(0, 100)時,則會按照設置的比例進行路由。需要注意的是,該值表示的是主庫和所有從庫的比例。

2、從庫之間的讀流量負載策略

路由到從庫的流量會在各個從庫之間進行負載均衡。目前Cetus各個從庫之間的讀流量負載策略僅支持輪詢(RR)方式。

在流量分配方面,Cetus也進行了優化。一些MySQL數據庫中間件(例如Atlas)是基于SQL的維度做負載均衡的,不會考慮SQL是同一個連接還是不同連接發送來的,中間件依次將接收到的SQL按照策略發往后端的數據庫。

網易MySQL中間件的負載均衡策略及性能優化

在實際使用中發現,長連接的場景下,該策略會造成大量的連接切換,從而導致session級變量的頻繁調整,影響SQL執行效率。因此,Cetus對其進行了優化,并非完全按照SQL的維度做負載均衡。

Cetus考慮了同一個連接連續發送SQL請求的情況,不會立即將當前SQL使用完的Cetus與MySQL的連接放回連接池復用,而是持有短暫(256毫秒)時間,以期后續仍有SQL執行,從而避免了session級變量的調整,大大增加了SQL執行的效率。

網易MySQL中間件的負載均衡策略及性能優化

長連接場景下,對優化前后的Cetus進行了簡單測試。通過測試發現,通過優化后的Cetus針對長連場景下的讀流量的吞吐量有了明顯提升。下圖是在docker環境下的簡單測試對比:

網易MySQL中間件的負載均衡策略及性能優化

為了防止IO過高,簡單改造了sysbench發送的SQL,限制了返回的結果集大小。禁用事務和prepare的情況下,采用100個線程每次測試60s,連續測試5次,結果如下:

網易MySQL中間件的負載均衡策略及性能優化

由于本機Docker性能較差,且sysbench模擬測試的語句較為簡單,不涉及session變量的切換,因此對比效果不甚明顯,本次測試性能僅提升30%左右。長連接業務場景下,性能優化可能會更加明顯。

3、讀流量的路由策略總結

在存在至少1個可用從庫的情況下,影響查詢語句的路由策略的因素主要有:

  1. 事務中的查詢;

  2. select...for update 或 select ... lock in share mode;

  3. Cetus設置參數master-preferred=true所有流量默認全部路由主庫;

  4. Cetus設置參數read-master-percentage控制主從讀流量負載;

  5. 使用注釋/*#mode=READWRITE*/或/*#mode=READONLY*/。

默認情況下,讀流量會優先路由到從庫,從庫之間按照輪詢策略在各個從庫之間做負載均衡;一旦所有從庫均不可用,會路由到主庫上。目前Cetus的各個從庫暫不支持按照權重做負載。

  • 對于a、b、c點,Cetus會將查詢語句直接路由主庫;

  • 對于d點,如果設置read-master-percentage=100,所有的查詢流量均路由到主庫;如果設置read-master-percentage=[0, 100),Cetus會將讀流量按照該比例路由到主庫和從庫(注意,這里的從庫指的是全部的從庫,即該比例指的是主庫和全部從庫的比例);

  • 對于e點,如果使用注釋/*#mode=READWRITE*/,讀流量會路由到主庫;如果使用注釋/*#mode=READONLY*/讀流量會路由從庫,如果所有從庫均不可用時才會路由到主庫。

上面的各個因素的優先級,注釋的優先級***,其次是參數master-preferred,***是參數read-master-percentage。

三、總結

MySQL數據庫中間件的主要特性是對客戶端發送的SQL進行路由,而其中負載均衡便是路由策略中的重要部分。通過了解Cetus的負載均衡機制,可以在后續維護過程中,更好的對數據庫中間件進行調優,更靈活地控制SQL的路由。

Cetus中間件開源地址:https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-quick-try.md 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2023-10-25 22:23:35

Dubbo路由

2021-07-04 14:20:16

Redis中間件高性能

2019-09-29 11:04:22

MySQL數據庫Atlas

2020-02-10 15:30:51

數據庫MySQLDAL

2021-02-04 08:25:50

授權策略NET 5

2016-11-11 21:00:46

中間件

2011-05-24 15:10:48

2021-02-11 08:21:02

中間件開發CRUD

2022-10-21 10:48:17

消息中間件互聯網應用協議

2018-02-01 10:19:22

中間件服務器系統

2018-07-29 12:27:30

云中間件云計算API

2015-02-07 21:52:45

PaaS中間件

2013-03-13 10:37:22

中間件Windows

2018-05-02 16:23:24

中間件RPC容器

2021-03-06 08:02:39

MySQL集群服務器

2010-05-10 16:20:32

負載均衡策略

2010-04-20 12:49:27

負載均衡策略

2012-11-30 10:21:46

移動中間件

2023-06-29 10:10:06

Rocket MQ消息中間件

2023-10-24 07:50:18

消息中間件MQ
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频第二页 | 日韩另类视频 | 在线观看久草 | 99re在线视频精品 | 精品一区二区三区中文字幕 | 精品人伦一区二区三区蜜桃网站 | 亚洲国产视频一区二区 | 国产久视频 | 久国产精品 | 波多野结衣一区二区 | 国产精品成人69xxx免费视频 | 中国一级特黄毛片大片 | 欧美一区二区三区在线 | 欧美伊人影院 | 久久久成人一区二区免费影院 | 国产美女一区二区 | 中文字幕中文字幕 | 亚洲精品电影 | 亚洲精品自在在线观看 | 九九热在线免费视频 | 国产欧美日韩视频 | 天堂国产 | 北条麻妃99精品青青久久主播 | 成人免费av在线 | 国产乱码精品一区二区三区忘忧草 | 久久精品色欧美aⅴ一区二区 | 中文字幕乱码一区二区三区 | 久久99精品国产 | 美女国内精品自产拍在线播放 | 亚洲一区二区在线播放 | 色婷婷av一区二区三区软件 | 成人在线观看免费观看 | 午夜激情影院 | 国产精品99999| 久久日韩精品一区二区三区 | 国产精品海角社区在线观看 | 欧美国产日韩在线观看 | 久久国产精品-久久精品 | 欧美日韩亚洲系列 | 国产丝袜一区二区三区免费视频 | 国产精品视频97 |