-
理念先进
随业务应用场景多元化发展,数据库已呈碎片化趋势,「Database Plus」旨在数据库上层建立标准和生态,为数据库提供增量能力,可防止数据库绑定、实现自主可控,突破原有数据库功能局限,提升数据基础设施整体功能上限。
-
成熟稳定 / 案例多
ShardingSphere 于 2016 年开源,经过多年的研发迭代,产品历经多个头部互联网大型场景打磨,成熟稳定、值得信赖。
-
功能全面
ShardingSphere 除了具备 Sharding 能力外,数据加解密和影子库的功能也是作为联通技术团队评估的指标,通过一套技术栈既可解决安全和压测的场景需求。ShardingSphere 为政务热线系统建设及架构扩展,提供了更多的能力支持。
-
高兼容 / 接入方便
ShardingSphere 与 MySQL 协议兼容,语法支持度也非常高,在开发过程中几乎不用考虑 SQL 的支持问题,接入非常方便。
-
高性能
政务热线忙时有数千坐席在线,工单记录以千万记录为起始单位,对性能有明确的要求。ShardingSphere-JDBC 定位为轻量级的 Java 框架,压测结果数据理想,可满足政务系统服务能力要求。
-
易运维
在 JDBC 良好的性能基础之上,ShardingSphere 还提供了对运维人员友好的 Proxy,使用常用的客户端即可直接访问,上手维护较容易。
除了以上五个维度的权衡,选型中也参考了其他数据库中间件产品,以下表格是 ShardingSphere 和 Mycat 的比对。
Apache ShardingSphere | Mycat | |
---|---|---|
开源协议 | Apache-2.0 | GPL-2.0/GPL-3.0 |
接入端 | 客户端 / 代理端 | 代理端 |
数据库支持 | 客户端:任意 代理端:MySQL/PG/openGauss | MySQL、Oracle、DB2、SQL Server、PostgreSQL 等 |
性能 | 客户端:损耗低 代理端:损耗高 | 损耗高 |
读写分离 | 有 | 有 |
数据加密 | 有 | 无 |
全链路压测 | 有 | 无 |
社区成熟度 | Apache 软件基金会 信通院可信认证 社区活跃度高 | 个人 / 三方社区 社区活跃度一般 |
商业公司支持 | 有 | 无 |
四、解决方案
由于 “ShardingSphere+MySQL” 具备稳定、易用及性能极致等特点,该方案在联通数科的多个政务热线项目中复制使用。
-
部署方式
ShardingSphere-JDBC 和 ShardingSphere-Proxy 混合使用的方式,兼顾了系统性能和可维护性。
-
分片键 / 分片算法
政务热线的工单表相对较大,且使用逻辑简单,因此在分片设计上,选取工单 ID 作为分片键,通过哈希算法分布数据。
-
迁移
新建项目不涉及历史数据,因此无需考虑数据迁移环节,上线即直接使用。
-
实施过程
回忆数个已上线的项目,由于技术方案评估较全面,且多次复制方案,实施过程并没有遇到 “坑”。
-
系统架构
政务热线业务模块采用了微服务架构,节点在十几到几十不等,以具体省市规模决定。在数据库层,使用物理机部署 3 节点 MHA,每个政务热线系统一般需要 4 套 MHA 来支撑业务。
五、用户收益
-
业务角度
-
支持客户端模式,最大化保证了政务热线对性能的要求;
-
系统稳定,为业务连续性带来有力的支撑。
-
-
研发角度
-
兼容良好,兼容主流数据库 SQL 语法,对接即可使用;
-
功能全面,读写分离、数据加密及全链路压测方案,系统扩展性强。
-
-
运维角度
-
支持代理端模式,为运维人员提供了良好的维护入口。
-
-
技术选型角度
-
防止数据库绑定,为未来升级提供了足够的灵活度支撑。
-
六、总结
通过联通数科政务热线的多个案例,验证了 ShardingSphere 在政务场景的能力,也进一步说明了 ShardingSphere 无行业限制的特点。
目前我国数字政府建设已进入全面提速阶段,联通数科和 ShardingSphere 通力合作,希望助力更多政务热线项目落地,打造更多高效、便捷和安全的政务热线。