做数据时代的加油站,ShardingSphere 为易车数据库架构演进提供新动力
Apache ShardingSphere 前段时间应邀来到易车北京总部,PMC Chair 张亮与易车的技术同学在数据加解密、扩容、迁移、上云等话题展开了深度交流与探讨。
作为中国领先的汽车互联网企业,易车深耕汽车行业二十余载,为中国汽车用户提供专业、丰富的互联网资讯和导购服务,并为汽车厂商和汽车经销商提供卓有成效的互联网营销解决方案。在公司“1234”的战略推动下,易车技术团队考察并选择了ShardingSphere,为优化数据服务提供更多选择。在讨论最后,张亮也表示,ShardingSphere 核心团队将与易车 DBA 团队保持紧密沟通,双方将建立起长期的技术合作关系,共同为繁荣 ShardingSphere 社区生态而努力。
在数据加解密方案中,可以通过 Proxy 来统一实现吗?
这个是可以的,无论是通过 Proxy 或是 JDBC 都能实现,只用 Proxy 也是没问题的。如果需要将数据迁移至 Proxy 端,Apache ShardingSphere 提供了弹性迁移模块,用户完全不需要担心迁移、上线的处理问题。其次,随着业务的增长和变化,也许企业后期会需要对已经分片处理过的数据库进行二次分片。Apache ShardingSphere 结合 Scaling 可以实现数据分片的弹性伸缩,保证系统可以随着业务变化而不断调整,从而满足业务快速增长的需求。
另一方面,ShardingSphere 的加密与一般数据库的内容加密不同,是基于行列级别进行加密。如常见身份证、密码等等要素,只需要通过 ShardingSphere 将这些要素进行加密即可。此外,ShardingSphere 通过对这部分能力进行标准化并集成在中间件生态上,自动化用户对新、旧业务的数据脱敏以及加解密的过程,整个过程实现了用户层面的无感知。同时支持多种内置的数据加解密/脱敏算法,用户也可根据自身情况来自定义扩展相应的数据算法。
在数据扩容或迁移时,如何在不停服的情况下实现数据扩容?对于新增数据如何处理?
在数据迁移构成中,分为存量数据迁移以及增量数据迁移,数据体量越大耗时越长。同时增量数据往往是动态变化的,为了最终确认两端数据一致,一定是需要一段停写时间,让日志能够追上来并完成校验。Apache ShardingSphere 可以将数据迁移任务分为多个部分并行执行,合并同一记录的修改操作,在配置上之后再执行一条命令停止主库的写入,使主库只具备只读的权限,同时在只读期间暂停 SQL 执行并在停写的瞬间确保数据是全局一致的,进而再操作切库,减少对于系统可用性的影响。
当下大部分企业为了保证高可靠以及高吞吐量,往往会对数据库进行主从配置。如何确保主从库之间的数据一致性,尤其是在数据迁移过程中,需要能够在几乎不影响业务的情况下实现数据校验。Apache ShardingSphere 提供了多种内置的比对策略和数据一致性校验算法,用以比较源端数据和目标端数据是否一致,默认使用 CRC32 以便在速度与一致性上取得平衡,且校验算法支持 SPI 自定义。
ShardingSphere 上云后,与应用和云之间的兼容性问题
不论是在云上还是本地,主要是应用连接 ShardingSphere,如果该应用有部署负载均衡,直接更改访问 URL 即可。
另外一种方式,可以根据 Database Mesh 设计理念,在每一个应用端部署一台 Sidecar,利用 Sidecar 来收集和探测 ShardingSphere 本身,从根本状态层面保证高可用。Database Mesh 为用户提供了完全隔离不同环境的能力。
关于 Database Mesh,面向运维工程师时,用户只需变更数据面板到分布式数据库的网络配置,以标准界面配置数据库访问规则、资源配额、数据变更、可观测性等;面向研发工程师,Database Mesh 对其完全屏蔽了数据库所在的具体网络地址,研发工程师只需面向本地数据库进行开发,无需感知分布式数据库的存在。
通过 Database Mesh 提供的云原生服务,未来用户可通过接收控制面板发送的指令,来执行限流、熔断、基于标签的路由等操作。未来,所有云上数据库流量的管理和控制都可以交由 Database Mesh 体系来进行管理,既可以管理普通的数据库,也可以搭配 ShardingSphere-Proxy 管控端。
欢迎点击链接,了解更多内容:
Apache ShardingSphere 官网:https://shardingsphere.apache.org/
Apache ShardingSphere GitHub 地址:https://github.com/apache/shardingsphere
SphereEx 官网:https://www.sphere-ex.com
欢迎添加社区经理微信(ss_assistant_1)加入交流群,与众多 ShardingSphere 爱好者一同交流。