关于shardingsphere:Apache-ShardingSphere-企业行|走进携程

38次阅读

共计 2315 个字符,预计需要花费 6 分钟才能阅读完成。

前段时间,Apache ShardingSphere 核心技术团队应邀来到携程上海总部,PMC Chair 张亮与携程的技术同学针对 ShardingSphere 一些应用场景的话题开展了深度交换与探讨。

携程团体作为寰球当先的一站式旅行平台,为确保用户体验及业务发展,近年来一直加大在人工智能、云计算等方面的研发和投入力度。尤其在后盾数据库,随着用户增长和业务扩张带来的流量增长,或多或少增长的数据体量都会对性能产生肯定的影响。因为对性能的要求更加极限,这也是携程在外部采纳 ShardingSphere-JDBC 分片能力的起因。

在应用的过程中,携程技术团队也逐步成为了 Apache ShardingSphere 社区的外围用户,其对于 ShardingSphere 也进行了更加高阶段的定制化革新与利用。前段时间, 携程技术团队曾将实际 Apache ShardingSphere 的过程整顿成一篇技术干货,感兴趣的同学可点击下方链接查看。

* 链接:干货 | 数据为王,携程国内火车票的 ShardingSphere 之路

以下为交换过程中外围探讨内容摘要:

ShardingSphere 能够针对某些特定的数据源反对用户自定义连贯吗?

是反对的。在 ShardingSphere 中,数据库方言真正的须要做的就是生成不同的方言取数据以及用不同的驱动去取数据这两方面。一方面,ShardingSphere 通过 SQL 体系将特定的数据源转换为语法树,再通过语法树转成查问计划数,通过查问计划数再反向生成 SQL 方言。其中 SQL 方言能够生成为 MySQL、PostgreSQL、Hbase 等不同的数据库方言,SQL 方言到数据库如何执行这部分是反对自定义扩大,为开发者提供更弱小的自定义能力,以便配合业务定制各种高级个性。

另一方面是须要用不同的驱动取数据,通过查问打算树去做剖析。查问计划数与 SQL 方言没有关系,只须要更改查问打算树里的表名或算子名称,依据这些再来生成 SQL,之后将取出来的数据通过 ShardingSphere 的算子从新做计算即可。因而,用驱动取数据所面向的是执行打算,和 SQL 方言无关。

当然,这样做也会产生一个问题,即从很多中央抽取过去的数据都被集中一起做计算,对内存和 CPU 的占比会十分高,进而导致性能呈现降落。ShardingSphere 在执行过程中会尽量升高计算比重,将不必要在内存中计算的局部尽量下推。因为 ShardingSphere 是 TP 计算引擎,这就决定了 ShardingSphere 必须要在同一个线程中做计算,否则无奈保障事务的先后。社区正在布局实现 AP 计算来大幅度晋升计算能力,但 AP 计算就无奈保障事务先后,这就须要用户依据场景诉求和所能接受的业务得失去抉择。

数据增量迁徙场景下,在迁徙实现后会对数据进行校验吗?

Apache ShardingSphere 提供了多种内置的数据一致性校验算法,用以比拟源端数据和指标端数据是否统一,默认应用 CRC32 以便在速度与一致性上获得均衡,且校验算法反对 SPI 自定义。在数据迁徙形成中,数据体量越大耗时越长,同时增量数据往往是动态变化的,为了最终确认两端数据统一,肯定是须要一段停写工夫,让日志可能追上来并实现校验。而对于性能的影响,则在于这段停写工夫的长短。

Apache ShardingSphere 能够将数据迁徙工作分为多个局部并行执行,合并同一记录的批改操作,在配置上之后再执行一条命令进行主库的写入,使主库只具备只读的权限,同时在只读期间暂停 SQL 执行并在停写的霎时确保数据是全局统一的,进而再操作切库,缩小对于零碎可用性的影响。此外,ShardingSphere 的校验算法也反对用户依据场景须要来定制规定,赋予了用户更高的自由度。

Apache ShardingSphere 联邦查问反对用户基于某种协定定义组件吗,当初停顿如何?

联邦查问是针对散布在多个不同数据库上的数据提供跨库查问能力的一种查问形式,目前 Apache ShardingSphere 联邦查问还只是一款处于试验阶段的产品,尽管性能层面曾经实现,但对于资源的占用还比拟高。Apache ShardingSphere 联邦查问能力次要反对同构数据库,比方 MySQL 到 MySQL 的查问。将来,ShardingSphere 联邦查问会实现面向异构数据库之间的查问,如 MySQL 到 PostgreSQL、MySQL 连 Hbase 等。在 Apache ShardingSphere 中联邦查问能力是凋谢给用户的,用户齐全能够通过 SQL 方言的转换去实现各类性能,尽可能满足更多场景下的业务需要。

【分割咱们】

如果您在业务中有利用 Apache ShardingSphere,想要疾速理解、接入 Apache ShardingSphere 5.X 新生态,心愿借此机会在团队外部举办一场对于 Apache ShardingSphere 的技术分享, 欢送扫描下方二维码增加官网小助手(ss_assistant_1),备注“走进企业”,会有专人与您对接。

在沟通过后如果单方认为产品和场景均十分匹配,Apache ShardingSphere 社区的外围团队将会走进您的企业,与各条研发线的工程师们现场沟通,解答对于 Apache ShardingSphere 的任何疑难。

欢送点击链接,理解更多内容:Apache ShardingSphere 官网:https://shardingsphere.apache.org/

Apache ShardingSphere GitHub 地址:https://github.com/apache/shardingsphere

SphereEx 官网:https://www.sphere-ex.com

正文完
 0