本文基於 DBLE 2.18.12.0 版本的Release Notes 進行詳細解讀,文章主要分爲以下四部分內容:
一、DBLE 項目介紹
二、更新概況
三、新特性
四、升級兼容性
一、DBLE項目介紹
DBLE 是企業級開源分佈式中間件,江湖人送外號 “MyCat Plus”;以其簡單穩定,持續維護,良好的社區環境和廣大的羣衆基礎得到了社區的大力支持;
DBLE官方項目:
https://github.com/actiontech/dble
如對源碼有興趣或者需要定製的功能的可以通過源碼編譯安裝
DBLE官方文檔:
https://actiontech.github.io/dble-docs-cn
可以詳細瞭解DBLE的背景和應用場景,本文未涉及到的細節都可在官方文檔獲得
DBLE下載地址:
https://github.com/actiontech/dble/releases
Tips:建議下載最新的 Releases 版本,下載tar壓縮包即可,如有源碼編譯需求的,可以下載源碼包。
二、版本概況
距上一次10月24日程序員節日版一個多月,dble 社區又迎來了新的版本更新; 最新的 Release Note 請參考:
https://github.com/actiontech/dble/releases/tag/2.18.12.0%2Ftag
這次的更新可謂乾貨滿滿,新增了6個新特性,修復了60+缺陷; 版本推送快,讓社區同學直呼,跟不上學習的步伐; 同時也有社區同學疑問,爲什麼有這麼多缺陷出來?
關於這點,官方的解釋:
DBLE 引入了專業的分佈式測試團隊, 所以 QA 同學天天報 Bug,dble越來越穩定;
社區活躍度高,快速響應了大量的社區使用場景;
DBLE 做爲企業級分佈式組件,還有大量的企業用戶場景;
DBLE 的 Release Note 其實非常容易看懂,因爲每條更新記錄上都會描述對應的 issue 號,可以查看具體的 issue 描述來確認這條變更具體發生的變更細節。
大部分都issue都會遵循issue提交的模版規範填寫,比如本次發佈修復的第一個issue#819:增加了對 MySQL 官方 GUI 客戶端 Workbench 8.0 的支持,描述了詳細的版本,背景,復現流程,預期結果;
舉個栗子:
// 劃重點:
dble 繼續維持月更的良好習慣
社區 issue 修復量大,維持了快速響應的風格
更新內容可以通過具體 issue 號獲取細節
最後一條請求:大家提 issue 的時候儘量遵循 bug 模版的規範哦
三、新特性
本次重點功能更新主要增加了如下幾點:
兼容了 MySQL 的 AuthSwichRequest 協議,從而增加對 MySQL 官方 GUI 客戶端 Workbench 8.0 的支持 #819
對優化器的調整:使得部分語句執行計劃可以直接透傳,無需在中間件重寫下推,改善了部分查詢性能 #752
create table tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) } 語法支持 #757
將 Druid 從 1.0.31 升級到 1.1.10 版本,修復了很多 SQL 解析的 bug #749
錯誤日誌打印增加了具體配置文件屬性不對的描述,運維同學的福音,不用帶眼鏡查看 xml 是不是大小寫不對了#905
添加 show @@ Alert 的管理器命令(在企業版內支持)
//劃重點:
1. 通過引入關係代數和查詢樹的方式, dble 解決了mycat 過往對複雜查詢處理場景不全,導致結果集不對的問題;本次對優化器的調整繼續加強,依舊遵循下面的基本宗旨:
· 結果正確性爲第一要務
· 利用已有的全局/ER關係表
· 減少中間件與數據庫之間的數據傳輸
· 儘量將能下發的計算下發給結點完成
· 減少中間件運算的空間/時間複雜度
2. 升級了 Druid ,過往老版本的 Druid 自身的 SQL 解析器存在一些 bug,社區同學如果踩到坑了,建議可以升級到 12 版本,這裏一併感謝 Druid 社區對此的貢獻:
Bug#744
https://github.com/actiontech/dble/issues/744
Bug#495
https://github.com/actiontech/dble/issues/495
Bug#316
https://github.com/actiontech/dble/issues/316
Bug#302
https://github.com/actiontech/dble/issues/302
Bug#295
https://github.com/actiontech/dble/issues/295
Bug#272
https://github.com/actiontech/dble/issues/272
Bug#258
https://github.com/actiontech/dble/issues/258
Bug#413
https://github.com/actiontech/dble/issues/413
3. 關於企業版功能的解釋:
· 提供圖像化的安裝配置界面
· 數據庫的高可用
· 監控告警功能
· dble 集羣功能
· dble 核心是完全開源免費的
· 基於 dble 核心,開發團隊還會維護 dble 的企業套件
· 通過企業付費模式來維持社區的運營
· 監控告警的社區功能已經在路上了,不久大家應該能用上
4. 修復的 bug 相對比較零散,大家可以通過查看具體的 issue 號來簡單瞭解是否命中來決策是否需要升級到 12 版本;
四、升級兼容性
本版本對配置文件的配置屬性做了比較嚴苛的檢查,會導致過往錯配或者漏配的配置,在重啓或者 reload config 的時候失敗;爲此我們在功能更新裏貼心的增加了:錯誤日誌打印出具體錯誤配置屬性#905,建議您升級的時候做好過往配置的驗證;#579
雖然我們升級了 durid,但是當前版本依然會有部分 SQL 解析場景的問題,注意避讓 #788
Zookeeper 增加了多實例的支持,通過 myid.properties ipAddress=$ip:$port,$ip:$port 逗號隔開的方式可以配置,因此舊的 ipAddress 和 port 的配置方式被遺棄,升級的時候做好調整#766
以上內容是針對1月7日 dble 新版 2.18.12.0 的詳細解讀,後續我們也會有系列文章幫助大家更好的使用dble,如有建議歡迎留言告訴我們~