前段时间,Apache ShardingSphere 核心技术团队应邀来到携程上海总部,PMC Chair 张亮与携程的技术同学针对 ShardingSphere 一些使用场景的话题展开了深度交流与探讨。
携程集团作为全球领先的一站式旅行平台,为确保用户体验及业务开展,近年来不断加大在人工智能、云计算等方面的研发和投入力度。尤其在后台数据库,随着用户增长和业务扩张带来的流量增长,或多或少增长的数据体量都会对性能产生一定的影响。由于对性能的要求更加极限,这也是携程在内部采用 ShardingSphere-JDBC 分片能力的原因。
在使用的过程中,携程技术团队也逐渐成为了 Apache ShardingSphere 社区的核心用户,其对于 ShardingSphere 也进行了更加高阶段的定制化改造与应用。前段时间,携程技术团队曾将实践 Apache ShardingSphere 的过程整理成一篇技术干货,感兴趣的同学可点击下方链接查看。
*链接:干货 | 数据为王,携程国际火车票的 ShardingSphere 之路
以下为交流过程中核心讨论内容摘要:
ShardingSphere 可以针对某些特定的数据源支持用户自定义连接吗?
是支持的。在 ShardingSphere 中,数据库方言真正的需要做的就是生成不同的方言取数据以及用不同的驱动去取数据这两方面。一方面,ShardingSphere 通过 SQL 体系将特定的数据源转换为语法树,再通过语法树转成查询计划数,通过查询计划数再反向生成 SQL 方言。其中 SQL 方言可以生成为 MySQL、PostgreSQL、Hbase 等不同的数据库方言,SQL 方言到数据库如何执行这部分是支持自定义扩展,为开发者提供更强大的自定义能力,以便配合业务定制各种高级特性。
另一方面是