mysql proxy,mycat, 都是比較靠譜的中介軟體軟體,不管是用來做讀寫分離,還是做分庫分表。
我們所說的更好, 首先體現在系統的管理和運維上。雲上的,基於中介軟體的分布式資料庫,相對於單純的中介軟體來說, 建立/管理方便、關鍵指標視覺化/自動化告警、複雜運維(如水平擴充套件中的資料遷移)自動化等功能點,都是節省 dba 時間的利器,讓 dba 可以專注於業務儲存架構和優化,而不用疲於應對日常的系統管理和運維。
單純使用中介軟體軟體來做讀寫分離或分庫分表,管理和運維的工作量和複雜度會有多高? 我們可以舉兩個例子來看下。
1. 假如你要搭建乙個讀寫分離方案。 那麼:
1.1 你要去熟悉一款中介軟體,了解這款中介軟體的部署方式,熟悉其配置檔案;
1.2 你需要去搭建乙個一主多從的資料庫集群,配置並測試好好主節點和多個從節點中間的複製關係;
1.3 上面兩步完成後,你可以將中介軟體和資料庫集群連線起來了。通過配置好中介軟體的配置檔案, 並設定各節點唯讀請求的比例,完成系統的組裝,同時進行一些測試,保證系統能按照預期進行工作。
但做到這個程度,還遠遠不夠。這樣的系統,只是剛好能工作,還遠未達到 「工業標準」。比如,還需要去中介軟體這個單點。因此你需要再增加乙個中介軟體節點,並安裝 keepalived 來做 ip 漂移, 保證乙個節點後掛掉有另乙個節點繼續服務;又比如你還需要設定系統監控和告警,保證系統故障能夠及時發現;另外,可能你還需要將一些系統關鍵指標視覺化, 提供給產品或你的boss作為參考。要做到這一點,你需要採集中介軟體的日誌,並寫乙個程式來做展現。
而上面所有的操作, 對於公有雲上的分布式資料庫來說,是點點滑鼠就可以完成的事情。可能在阿里 drds 那塊, 還需要4-5步的操作,等待5分鐘左右; 但是對於 ucloud 的 uddb 來說, 只需要一步操作,時間不超過30s。
2. 假如你要搭建乙個水平分表方案。那要做的事情就更多了。除了比讀寫分離更複雜的系統搭建, 還有兩個麻煩的事情, 一是建表,二是擴容。
先來看建表。基本上每次建一張表時,你都需要先到每個資料庫節點上,建立好子表,然後修改中介軟體配置檔案並重啟,讓分表規則生效。
而擴容操作,我相信這是所有開發或運維同學最不願意幹的事情。水平擴容意味著你需要將海量的資料, 從老的資料庫節點遷到新增的節點,以匹配新的分表規則,在整個過程必須做到不丟一條資料。風險之高,過程之漫長,相信做過的人都深有體會。對於業務來說,水平擴容也是不得已而為之的事情,因為水平擴容需要停服。
公有雲上的分布式資料庫, 為建表和擴容提供了極簡的解決方案。以uddb為例,uddb為使用者提供了和mysql水平分割槽表語法一致的建表語句, 你只需要通過mysql客戶端傳送一條建表語句, 即完成了子表建立+分表規則生效等全部操作; 同時uddb對系統擴容提供了一鍵式的解決方案,使用者只需要點選乙個按鈕,即可等待系統擴容操作自動完成,期間系統不停服,只是在擴容期間,每隔一段時間,會有幾毫秒到零點幾秒的訪問中斷(同時擴容期間不能處理ddl語句),整個過程能夠保證資料的一致性和可靠性。
當然,不管是阿里drds,還是uddb,都是需要收費的(阿里drds 1480/月,uddb 1200/月,目前公測階段免費)。但我認為,這個費用值回票價。它會讓你擺脫複雜又重複的中介軟體管理和運維工作,開始思考和解決對業務更為重要和關鍵的問題,特別是對於創業團隊而言。
有可能你已經對中介軟體的運維瞭如指掌,積累了一整套方法和工具,橫練出一身本領, 覺得公有雲產品的這套解決方案,可有可無;也有可能你過去每天都在潛心鑽研中介軟體的運維和原始碼, 不忍放棄已經投入的許多時間和精力。但我認為,只要公有雲產品能夠解決你的問題,就應該積極擁抱它。因為中介軟體技術的發展趨勢來看,自動化的管理和運維,程式取代人,是大勢所趨。在乙個劇烈變化的時代,咱們不要做乙個手拿錘子,每天只等著敲釘子的人。必然還有很多無可替代,但更關乎團隊發展甚至生死的工作;肯定還有很多創新性的,可以帶來更多價值的技能,值得我們去發現和探索。而對於人肉做過水平擴充套件和資料遷移的人來說,有什麼問題是我們不能拿下的呢。
雲上的分布式資料庫,比單純使用中介軟體更好,其次體現在服務上。任何乙個行業的發展,勢必導致專業的分工。對於公有雲研發團隊而言, 能夠生存下來的唯一可能,是這個團隊能夠比客戶做的更好,比競爭對手做得更好,而要做到這一點只能是更深入的鑽研和更優質的服務。而從規模效應而言,乙個每天負責處理幾十家大客戶資料庫問題的,雲計算公司的dba,和乙個每天只負責解決自家公司資料庫問題的dba而言, 其鍛鍊強度和公升級速度是無法比較的。對於中介軟體的研發和運維也是同樣如此。因為接觸了廣大的客戶,因為必須要解決客戶的問題,所以必然自身的能力需要也能夠不斷提高,從而產品成熟度和服務能力也不斷提高。總之,一款公有雲產品,只要能夠活下來而且活好幾年,其團隊技術能力和服務能力,必然是造詣極深的。
uddb是基於ucloud的udb產品構建,本質上只是在udb上面,增加一款分布式中介軟體,很多能力,包括儲存節點的高可用,讀寫分離節點組,都是復用udb的能力。因此,整個產品的穩定性值得信賴。
**:
中介軟體 訊息中介軟體學習總結
冪等 在程式設計中.乙個冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。冪等函式,或冪等方法,是指可以使用相同引數重複執行,並能獲得相同結果的函式。這些函式 不會影響系統狀態,也不用擔心重複執行會對系統造成改變。例如,getusername 和settrue 函式就是乙個冪等函式....
2 5 mysql中介軟體
一 mysql中介軟體 atlas 功能 1.讀寫分離,2.從庫負載均衡,3.ip過濾,4.自動分表,5.dba可平滑上下線db,6.自動摘除宕機的db atlas啟動後會建立多個執行緒,其中乙個為主執行緒,其餘為工作執行緒。主線程負責監聽所有的客戶端連線請求,工作執行緒只監聽主線程的命令請求。主線...
中介軟體作業
主要檔案的 fctrl client linux.c this is sample code generated by rpcgen.these are only templates and you can use them as a guideline for developing your ow...