共计 2003 个字符,预计需要花费 6 分钟才能阅读完成。
近期,Apache ShardingSphere 核心技术团队应邀来到汽车之家北京总部,PMC 潘娟与汽车之家的技术同学在 ShardingSphere 场景解决方案方面开展了深度交换与探讨。
汽车之家成立于 2005 年,致力于为消费者提供一站式的看车、买车、用车服务,提供优质的汽车生产和汽车生存服务。在历经媒体化、平台化、智能化的转型后,汽车之家正在进行生态化布局,围绕看车、买车、用车多场景打造“人无我有”的全网惟一车生态全链路平台。从汽车之家官网得悉,汽车之家 App 月活已达到 6403 万。这六千万体量的月活在为业务带来了增长的同时,也为后盾架构也带来了不小的压力。在交换过程中,单方围绕以下这些问题开展了探讨。
如何实现从 MySQL 到 ES 数据迁徙和同步?
这也是 Apache ShardingSphere 目前所正在做的一部分性能,因为同步的过程就相当于是将数据迁徙过来,在分片的过程中将数据齐全打散后散布在每一片上。目前 Apache ShardingSphere 生态内有一款 scaling 迁徙模块,可实现数据分片的弹性伸缩,保障分片架构可能随着业务变动而一直调整。
数据库呈现故障转移时,ShardingSphere 如何解决,是否须要 DBA 染指?
分为两种状况,第一种状况下数据库采纳 MGR,这种状况下 ShardingSphere 会主动进行故障转移;第二种状况则是采纳 MHA 或其它高可用计划,须要 DBA 通过 DistSQL 被动反馈给 Proxy 端,此时 ShardingSphere 再解决所须要的业务流量。
须要在 Proxy 上做 DDL 变更,还是在计算节点上做变更?
在 Proxy 上实现 DDL 变更操作,并须要 ShardingSphere 的分布式事务去进行保障。现阶段 Apache ShardingSphere 反对 XA 及支流柔性事务的解决方案,为本地事务、两阶段事务和柔性事务提供对立的分布式事务接口。家喻户晓,在 MySQL 中 DDL 是不会执行回滚的。目前 ShardingSphere 的状态和底层数据库保持一致,如果 DDL 产生了『一半执行胜利一半不胜利』的状况下,目前 ShardingSphere 只会报错,还无奈提供及时回滚的能力。
目前 Apache ShardingSphere 已可能记录每个执行后果以及以后的事务状态,相当于对每个计算节点实现版本控制,这部分能力齐全开源。后续版本只有利用这些版本的信息,如果失败就能够间接实现 DDL 回滚。同时因为 Proxy 自身是无状态的,处于随起随停的状态,因而版本信息须要放到治理核心去实现。基于位于数据库下层的 Proxy,能够屏蔽底层具体分布式事务细节,像应用本地事务一样应用 ACID 或柔性事务级别的分布式事务,满足用户对不同场景的需要。
ShardingSphere + 数据库的组合是否能满足两地三核心的多活场景?
一些分布式数据库自身自带两地三核心架构,其计算节点和存储节点自身就是一个十分紧耦合的产品。这与 ShardingSphere 和数据库之间的关系是不同的。在 ShardingSphere 的体系中,数据库回归到了存放数据的实质。因而在实现两地三核心时,对于数据存储而言能够任意抉择主备或其它部署形式,在三个核心都存储齐全同样的数据。
对于 Proxy 而言,因为 Proxy 自身是位于数据库之上,不管数据库位于哪个数据中心,Proxy 都可能感知到整体数据库集群的部署状态。如果此时 A 机房服务挂掉,能够通过 DistSQL 执行 Proxy 将流量迁徙到其它机房数据库上进行拜访。因为 Proxy 自身无状态,因而实践上能够在每个机房中都部署一台 Proxy,如果 A 机房服务全副挂掉,只需拜访 B 机房的 Proxy 端就可能天然实现流量的迁徙。将来 Apache ShardingSphere 社区也将针对多活、两地三核心此类场景,在性能层面实现进一步欠缺。
【分割咱们】
如果您在业务中有利用 Apache ShardingSphere,想要疾速理解、接入 Apache ShardingSphere 5.X 新生态,心愿借此机会在团队外部举办一场对于 Apache ShardingSphere 的技术分享, 欢送扫描下方二维码增加官网小助手微信(ss_assistant_1),备注“走进企业”,会有专人与您对接。
在沟通过后如果单方认为产品和场景均十分匹配,Apache ShardingSphere 社区的外围团队将会走进您的企业,与各条研发线的工程师们现场沟通,解答对于 Apache ShardingSphere 的任何疑难。
欢送点击链接,理解更多内容:
Apache ShardingSphere 官网:https://shardingsphere.apache…
Apache ShardingSphere GitHub 地址:https://github.com/apache/sha…
SphereEx 官网:https://www.sphere-ex.com