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

數據庫中間件Atlas調研筆記

開發 開發工具 數據庫
數據庫中間件Atlas調研筆記,死磕了。13年底負責數據庫中間件設計時的調研筆記,拿出來和大家分享,輕拍。

13年底負責數據庫中間件設計時的調研筆記,拿出來和大家分享,輕拍。

數據庫中間件Atlas調研筆記

一、Atlas是什么

  • 奇虎360的一個mysql數據庫中間層項目
  • 在mysql官方推出的mysql-proxy0.8.2的基礎上改的
  • 基于服務端的中間件

畫外音:數據庫中間件有基于服務端的,也有基于客戶端的,TDDL屬于后者;而cobar和Atlas是一個中間層服務,屬于前者。

二、Atlas相對mysql-proxy的優勢

既然Atlas是基于mysql-proxy改的,有一些什么優化呢?

  • 主流程中的Lua腳本用C重寫
  • 網絡模型,線程模型重寫
  • 實現了“真正意義”上的連接池,真正連接復用
  • 優化了鎖機制,性能提高數十倍

畫外音:性能提高數十倍是傳說,用過的同學可以出來說一說。

  • 官方mysql-proxy主庫宕機從庫亦不可用,Atlas優化為可讀不可寫

優化之外,還新增了什么特性呢?

  • ip過濾
  • 分表支持
  • dba可平滑上下線db
  • 自動摘除宕機db

三、Atlas最吸引人的分表功能

分表功能是Atlas相對于mysql-proxy最具有吸引力的功能。

1. 分表設置

為了支持分表,需要增加分表設置

  1. tables = $db_name 
  2.     .$table_name 
  3.     .$partition_column_name 
  4.     .$table_count 

例如

  1. tables = school:stu:id:100 
  • 數據庫名叫school
  • 表名叫stu
  • 分表字段叫id
  • 總共分為100張表

這100張子表需要用戶手動逐個建立的,stu_0, stu_1, stu_2, … stu_99,并且所有的子表必須在一個數據庫里。

畫外音:額,這個需要用戶手動執行,還是有點坑的。

畫外音:分表并且要求子表在一個庫里,如果數據量過大,無法通過擴展實例來擴容,不確定Atlas對于這個問題是如何考慮“擴展性”的。

2. 操作支持

Atlas支持select, delete, update, insert, replace操作,它會根據$partition_column_name 的值來對表的個數進行取模,以定位到sql請求要落到哪個子表。

需要注意的是,sql語句必須帶上分表id作為查詢條件,如果不帶上id,則會提示stu表不存在。

畫外音:不支持夸庫分表,不支持非partition_column上的查詢,應用場景應該會比較受限。

四、Atlas的參數擴展

1. min-idle-connections

  • 用來實現mysq連接池功能,進行連接限制
  • Atlas為每臺DB建立一個連接池
  • 當有客戶端連接Atlas時,Atlas會先在第一臺DB上建立連接,直到第一臺DB連接池內的空閑連接數達到min-idle-connections,再在下一臺DB上建立連接,直到所有DB連接池內的空閑連接數都達到min-idle-connections,便不再建立新連接,而開始復用連接池內的連接
  • Atlas啟動時,配置里的所有DB會按照主庫在前從庫在后的順序在內存里排好次序,所以初始階段會先在主庫上建立連接
  • Atlas在運行過程中,某連接如果觸發了DB的wait_timeout,Atlas會把該連接銷毀,如果因此而導致連接池內的空閑連接數低于min-idle-connections,Atlas將在客戶端下一次連接時重新在該DB上建立連接
  • 初使用者常常會誤認為讀寫分離不起作用,其實是由于min-idle-connections設置得較大,而測試時只連接了一次或幾次,這樣的話建立的連接都在主庫上,從庫上還沒有建立連接,此時發送讀語句,自然也只能打向主庫
  • DB的wait_timeout建議不要設得太小,因為Atlas有連接池機制,不會一直新建連接導致DB上連接數過多,所以DB不需要依賴wait_timeout防止過多連接,如果wait_timeout太小會導致Atlas的一些不必要的銷毀超時連接的開銷

畫外音:并發量比較大的時候,連接幾乎不會被銷毀。

2. client-ips

  • 該參數用來實現多用戶的權限控制功能

配置格式如下:

  1. client-ips : 127.0.0.1, 192.168.0.* 

畫外音:簡單而實用的功能,多少事故是因為“線下將流量壓到線上”或者“ SecureCRT 窗口太多,切換錯了數據庫”。

3. lvs-ips

  • 該參數是Atlas前面掛接的LVS的物理網卡的IP,不是虛IP
  • 該參數用來實現平滑重啟功能,否則在重啟Atlas的瞬間的那些SQL請求都會失敗
  • 平滑重啟的條件:至少有兩臺配置相同的Atlas,且掛接在LVS之后

五、Atlas最受關注FAQ

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

答:是,對多字符集的支持是Atlas對原版MySQL-Proxy的第一項改進。

2. 問:Atlas是否支持事務操作?

答:支持,且處于事務狀態的客戶端中途退出時,Atlas會銷毀該客戶端使用的連接,讓后臺的mysql回滾事務,保證了事務的完整性。

畫外音:單庫多表。

3. 問:自動讀寫分離挺好,但有時候寫完馬上就想讀,萬一主從同步延遲怎么辦?

答:SQL語句前增加 /*master*/ 就可以將讀請求強制發往主庫,例如:

  1. /*master*/ select * from t; 

畫外音:額,需要調用方自己來強制讀主,說實話,不是特別實用。

4. 問:主庫宕機,讀操作受影響么?

答:不受影響,mysql-proxy不支持這個功能。

5. 問:想下線一臺DB, 又不想停掉server, 怎么辦?

答:可以通過管理接口手動上下線后端db:

  1. remove backend i 

6. 問:想給集群中增加一臺DB, 不想影響線上正常訪問可以嗎?

答:可以通過管理接口可以實現:

  1. add master ip:port 
  2. add slave ip:port@weight 

7. 問:Atlas支持mysql的prepare特性嗎?

答:不支持,但打算在后續版本中支持。

8. 問:Altas支持多個主庫的運行模式嗎?

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

9. 問:Altas支持SQL安全性過濾嗎?

答:支持,不帶where字句的delete可以過濾。

10. 問:Altas未來有什么發展規劃?

答:支持跨機器的分庫分表,將數據分不到多臺機器上。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-11-27 05:36:16

數據庫中間件TDDL

2017-11-27 05:06:42

數據庫中間件cobar

2018-02-24 19:37:33

Java8數據庫中間件

2011-08-10 13:03:58

CJDBC數據庫集群

2017-05-23 18:55:05

mysql-proxy數據庫架構

2017-07-26 09:41:28

MyCATSQLMongoDB

2017-11-27 06:01:37

數據庫中間件中間層

2017-12-01 05:40:56

數據庫中間件join

2017-12-11 13:30:49

Go語言數據庫中間件

2017-07-18 17:35:16

數據庫MyCATPreparedSta

2017-11-03 11:02:08

數據庫中間件

2017-11-30 08:56:14

數據庫中間件架構師

2024-12-06 08:29:29

2017-07-18 17:07:40

數據庫 MyCATJoin

2020-10-15 08:34:32

數據庫中間件漫談

2021-07-27 05:49:59

MySQL數據庫中間件

2009-01-20 10:45:55

Oracle數據庫中間件

2018-11-07 15:30:19

數據庫NewSQLNoSQL

2022-04-01 10:55:30

數據庫混合云建設

2011-05-24 15:10:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品视频中文字幕 | 日本中文字幕在线观看 | 亚洲综合在 | 精品一区二区三区在线观看 | 成人日韩av | 国产男女视频 | 中文字幕第一页在线 | 精品中文视频 | 综合色婷婷 | 99视频在线免费观看 | 久久久久久综合 | 蜜月aⅴ国产精品 | 亚洲在线高清 | 国产乱码精品1区2区3区 | 久久国产精品无码网站 | 亚洲国产一区二区三区四区 | 国产精品永久免费视频 | 欧美成人精品一区二区男人看 | 亚洲成人免费观看 | 99re在线播放| 亚洲香蕉| 日韩成人免费视频 | 日韩2020狼一二三 | 永久网站| 亚洲视频免费在线观看 | 操人视频在线观看 | 久久com| 黄色片免费 | 午夜国产在线 | 亚洲成人中文字幕 | 久久综合九色综合欧美狠狠 | 看av电影 | 色综合久久久久 | caoporn国产精品免费公开 | 国产高清精品网站 | 欧美日韩精品一区二区三区四区 | 久久久久久亚洲精品 | 男人天堂国产 | a在线免费观看视频 | 亚洲成人免费在线 | 日韩一二区在线 |