国际财务系统基于ShardingSphere的数据分片和一主多从实践

💡 原文中文,约9400字,阅读约需23分钟。
📝

内容提要

传统的单节点数据存储方案无法满足海量数据的需求,因此采用收付款对象分库、时间作为表分区、一主多从的读写分离方式,实现了读写分离+数据分片的配置,并提供了XA事务管理器参数配置和Seata分布式事务解决方案,推荐使用弱XA事务,尽量设计时避免跨库事务,并建议使用Sharding-Sphere进行分库,分表可以考虑使用MYSQL分区表。

🎯

关键要点

  • 传统单节点数据存储方案无法满足海量数据需求,导致性能瓶颈。
  • 需要支持每月接单量一亿以上,24小时内完成账单生成。
  • 制定数据分配规则,使用时间和收付款对象作为分片键。
  • 采用收付款对象分库,时间作为表分区的策略。
  • 实现读写分离,主库处理写操作,从库处理读操作,提升系统性能。
  • 使用Sharding-Sphere进行读写分离和数据分片配置。
  • 实现自定义读写分离负载均衡算法,支持多种负载均衡策略。
  • 在特定场景下强制读取主库,使用注解实现。
  • 分库的JOIN操作需谨慎,推荐使用默认库或全局表。
  • XA事务管理器配置支持分布式事务,推荐使用弱XA事务。
  • 避免跨库事务设计,尽量将事件和事件数据放在同一库中。
  • 总结推荐使用Sharding-Sphere进行分库,注意选择合适的分片键,避免数据倾斜。
➡️

继续阅读