本文基于 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下载地址:
Tips:建议下载最新的 Releases 版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包。
二、版本概况
距上一次10月24日程序员节日版一个多月,dble 社区又迎来了新的版本更新; 最新的 Release Notes 请参考:
https://github.com/actiontech/dble/releases/tag/2.18.12.0%2Ftag
这次的更新可谓干货满满,新增了6个新特性,修复了60+缺陷; 版本推送快,让社区同学直呼,跟不上学习的步伐; 同时也有社区同学疑问,为什么有这么多缺陷出来?
关于这点,官方的解释:
- DBLE 引入了专业的分布式测试团队, 所以 QA 同学天天报 Bug,dble越来越稳定;
- 社区活跃度高,快速响应了大量的社区使用场景;
- DBLE 做为企业级分布式组件,还有大量的企业用户场景;
DBLE 的 Release Notes 其实非常容易看懂,因为每条更新记录上都会描述对应的 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
Bug#495
Bug#316
Bug#302
Bug#295
Bug#272
Bug#258
Bug#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,如有建议欢迎留言告诉我们~