日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据切分——Atlas介绍

發(fā)布時(shí)間:2023/12/9 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据切分——Atlas介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? Atlas是由 Qihoo 360公司W(wǎng)eb平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎(chǔ)上,修改了大量bug,添加了很多功能特性。目前該項(xiàng)目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺(tái),每天承載的讀寫請求數(shù)達(dá)幾十億條。同時(shí),有超過50家公司在生產(chǎn)環(huán)境中部署了Atlas,超過800人已加入了我們的開發(fā)者交流群,并且這些數(shù)字還在不斷增加。


?????? Atlas名字的由來:


?????? Atlas希臘神話中雙肩撐天的巨人,普羅米修斯的兄弟,最高大強(qiáng)壯的神之一,因反抗宙斯失敗而被罰頂天360期望這個(gè)系統(tǒng)能夠腳踏后端DB,為前端應(yīng)用撐起一片天。


??????? Why Atlas?


??????? mysql-proxy是官方提供的mysql中間件產(chǎn)品可以實(shí)現(xiàn)負(fù)載平衡,讀寫分離,failover等,但其不支持大數(shù)據(jù)量的分庫分表且性能較差。


??????

??????? Atlas相對于官方MySQL-Proxy的優(yōu)勢

??????????? 1.將主流程中所有Lua代碼用C重寫,Lua僅用于管理接口

??????????? 2.重寫網(wǎng)絡(luò)模型、線程模型

??????????? 3.實(shí)現(xiàn)了真正意義上的連接池

??????????? 4.優(yōu)化了鎖機(jī)制,性能提高數(shù)十倍



??????? Atlas架構(gòu)設(shè)計(jì):


??????? Atlas是一個(gè)位于應(yīng)用程序與MySQL之間中間件。在后端DB看來,Atlas相當(dāng)于連接它的客戶端,在前端應(yīng)用看來,Atlas相當(dāng)于一個(gè)DB。Atlas作為服務(wù)端與應(yīng)用程序通訊,它實(shí)現(xiàn)了MySQL的客戶端和服務(wù)端協(xié)議,同時(shí)作為客戶端與MySQL通訊。它對應(yīng)用程序屏蔽了DB的細(xì)節(jié),同時(shí)為了降低MySQL負(fù)擔(dān),它還維護(hù)了連接池。

?????

?????????


????????? Atlas功能特點(diǎn)及常見問題:

1.Atlas是否支持多字符集?

對多字符集的支持是我們對原版MySQL-Proxy的第一項(xiàng)改進(jìn),符合國情是必須的。并且支持客戶端在連接時(shí)指定默認(rèn)字符集。

2.Atlas是否支持事務(wù)操作?

支持,且處于事務(wù)狀態(tài)的客戶端中途退出時(shí),Atlas會(huì)銷毀該客戶端使用的連接,讓后臺(tái)的mysql回滾事務(wù),保證了事務(wù)的完整性。

3.自動(dòng)讀寫分離挺好,但有時(shí)候我寫完馬上就想讀,萬一主從同步延遲怎么辦?

SQL語句前增加 /*master*/ 就可以將讀請求強(qiáng)制發(fā)往主庫。在mysql命令行測試該功能時(shí),需要加-c選項(xiàng),以防m(xù)ysql客戶端過濾掉注釋信息。

4.主庫宕機(jī),讀操作受影響么?

在Atlas中讀操作不受影響,Atlas會(huì)將讀請求轉(zhuǎn)發(fā)到其他還存活的從庫上。但此時(shí)寫請求將會(huì)失敗,因?yàn)橹鲙戾礄C(jī)了。

5.檢測后端DB狀態(tài)會(huì)阻塞正常請求么?

不會(huì), atlas中檢測線程是異步進(jìn)行檢測的,即使有db宕機(jī),也不會(huì)阻塞主流程。在Atlas中沒有什么異常會(huì)讓主流程阻塞。

6.想下線一臺(tái)DB, 又不想停掉mysql server, 怎么辦?

可以通過管理接口手動(dòng)上下線后端db, Atlas會(huì)優(yōu)先考慮管理員的意愿。

7.想給集群中增加一臺(tái)DB, 不想影響線上正常訪問可以嗎?

通過管理接口可以輕松實(shí)現(xiàn)。

8.相比官方mysql-proxy, Atlas還有哪些改進(jìn)?

A: 這實(shí)在是個(gè)難以回答的問題,性能,穩(wěn)定性,可靠性,易維護(hù)性,我們做過幾十項(xiàng)的改進(jìn),下面會(huì)盡量列一些較大的改動(dòng)

9.Atlas支持mysql的prepare特性嗎?

目前Atlas部分支持prepare功能,支持java,python,PHP(PDO方式)。

10.Altas支持多個(gè)主庫的運(yùn)行模式嗎?

目前還未對于Atlas后面掛接多個(gè)主庫的情形進(jìn)行測試過,不建議這樣使用。建議使用一主一從或一主多從的模式。

11.在使用Atlas的過程中,發(fā)現(xiàn)了Atlas存在的bug或者對Atlas有新的功能需求,如何反饋給開發(fā)者?

對于用戶反饋的bug,我們非常重視。歡迎用戶將bug的復(fù)現(xiàn)的環(huán)境、步驟和運(yùn)行截圖發(fā)郵件至zhuchao[AT]360.cn。同時(shí)如果用戶在實(shí)際的應(yīng)用場景中,對Atlas有新的功能需求,也可以向我們發(fā)郵件,我們將及時(shí)回復(fù)。另外有熱心網(wǎng)友建了QQ群326544838,開發(fā)者也已經(jīng)加入,方便討論。

12.java程序連接Atlas出現(xiàn)亂碼問題

把jdbc連接中的amp;刪除掉,例如:將

jdbc:mysql://10.10.10.37:3306/user_db?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
修改為:

jdbc:mysql://10.10.10.37:3306/user_db?useUnicode=true&characterEncoding=utf-8&autoReconnect=true

13.監(jiān)控主從同步之間的延遲?

Atlas不負(fù)責(zé)MySQL的主從同步操作,需要DBA自己管理。

14.java程序連接Atlas發(fā)現(xiàn)不能讀寫分離,所有的請求都發(fā)向主庫,這是為什么?

檢查一下java框架,是不是默認(rèn)將autocommit設(shè)置為0了,很多java框架將語句都封裝在一個(gè)事務(wù)中,而Atlas會(huì)將事務(wù)請求都發(fā)向主庫。

15.Atlas有sql語句黑名單過濾機(jī)制嗎?

有的,Atlas會(huì)屏蔽不帶where條件的delete和update操作,以及sleep函數(shù)。


?????????

???????

???????

總結(jié)

以上是生活随笔為你收集整理的数据切分——Atlas介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。