专栏首页MySQLBeginnerMySQL在Square的拆分实践

MySQL在Square的拆分实践

Square是面向美国,加拿大,英国,日本,澳大利亚提供金融服务的公司。现在所有的交易相关信息存储在MySQL中。这种电商类的网站,整体规模及也有一些值得学习的地方。 下面一起看看Square在MySQL方面的经验。

目前Square使用MySQL的规模如下:

  • 超过4000个实例,基于Percona Server 5.6 使用GTID+Row格式复制
  • 超过800台物理机器
  • 数据总量在1PB左右
  • 300多个服务构成
  • 全年达99.95%的可用度。 每天低于43s,全年4个小时23分的停机。

最大的成功经验: 把每个库控制在一定的大小之下(1T以下),不要出现大库大实例。

面对这么大的规模的DB集群,Square的成功经验总结如下:

  1. 利用复制技术,每个IDC里一个从库,各IDC内提供切换技术。其它IDC里的从库只是用是来提供读的能力。 因为Square有MySQL主从结构更多的是在多IDC之间部署,考虑到机房之间IDC的可用性问题,并没有把业务过度的依赖的其它从库,而且把所有的业务尽量压在了主节点上。业务请求也集中一个IDC内完成,当当前的IDC不用时,才切换到其它IDC中。

在设计上拒绝大库。

2. 高可用切换使用基于域名和VIP结合的方式. 主节点担任更多的读写工作。 每个节点在不同的IDC中。利用GTID+Row格式复制,其中节点故障,如果需要重建,首先借助 备份重建,如果备份完成,借助于主库下面的从节点备份后重建。

整体结构如下:

标准化每个集群,做到多IDC中可用,这个可用,实质上是多IDC提供容灾能力,其它IDC不提供写能力。

3. 备份上使用percona的xtrabackup备份。每天进行全备,对备份进行加密及切分成4G一个块进行存储。做好备份工作的就监控,Report备份失败的任务,备份存储到本地的Raid做的存储上,也有部分存到云盘上面。 每天有随机抽样检验备份是否可用,也可以用备份恢复故障的节点,例如:备份重建失败的节点等等。

Square在使用MySQL方面的建议:

1. 考虑到所有节点都有可能会失败

2. 每个进程都要考虑到管理

3. MySQL的Replcaiton是一个不错的架构

4. 注意自动化运维的时间控制(拒绝超级大实例)

5. 保持每个分组单元独立

6. 告警通知可以及时的能下发到DBAs或是相关开发人员

7. 选择一个稳定可信的版本(统一版本)

8. 把MySQL当成队例或是Cache来用

9. HA环境,生产中要进行定期测试

10. 从应用层考虑拆分

11. 限制每个应用拆分的DB大小在1TB以内

12. 保持较小的集群, 拒绝大实例

13. 自动化每一个操作

14. 监控MySQL活着或是死掉,复制是不是正常

15. 监控指标使用PMM,VividCortex等相关工作及内部的指标

16. 定期利用pt-table-checksum进行检查主从数据是不是一致。

备注:文章是作者阅读总结,如有疑问欢迎留言。

本文分享自微信公众号 - MySQLBeginner(MySQLBeginner),作者:吴炳锡

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL在Square的拆分实践

    Square是面向美国,加拿大,英国,日本,澳大利亚提供金融服务的公司。现在所有的交易相关信息都存储在MySQL中。这种电商类的网站,整体规模也有一些值得学习的...

    wubx
  • 叮咚~您的 MySQL 云备份已上线

    作为一名合格的MySQL DBA,备份是重中之重。为了保证备份集的安全可靠,除了集中存储以外还有其他更好的方案吗? 当然是有的,可以存储在OSS或者分布式存储上...

    wubx
  • XtraBackup 的流式和压缩备份

    Streaming mode, supported by Percona XtraBackup, sends backup to STDOUT in speci...

    wubx
  • MySQL在Square的拆分实践

    Square是面向美国,加拿大,英国,日本,澳大利亚提供金融服务的公司。现在所有的交易相关信息都存储在MySQL中。这种电商类的网站,整体规模也有一些值得学习的...

    wubx
  • 三行代码把女朋友照片变成了素描图片!人生苦短,爱python多一些

    我们知道图片除了最普通的彩色图,还有很多类型,比如素描,卡通,黑白等等,今天就介绍如何使用python和opencv来实现图片变素描图。

    一墨编程学习
  • JavaWeb开发——软件国际化(文本元素国际化)

    前几天围绕着JDBC编程进行了系统的学习。现在我们对Java程序数据库操作已经是轻车熟路了。也学会了使用各种框架来帮助我们简化编程。 今天是学习计划的第七天,...

    wangweijun
  • 初探TypeScript

    腾讯NEXT学位
  • Hacking Team间谍软件Soldier工程分析

    Hacking Team这次泄露的信息包括很多监视代码。如Windows平台上的间谍软件工程Soldier(战士),用于非法监听用户的上网信息和本地信息。今天我...

    FB客服
  • 腾讯Matrix分析--ApkCanary

    APK Checker 是针对 Android 安装包的分析检测工具,根据一系列设定好的规则检测 APK 是否存在特定的问题,并输出较为详细的检测结果报告,用于...

    None_Ling
  • 网站性能指标 - Apdex指数

    假设有两个架构设计方案:方案A 和 方案B 方案A 并发请求 < 200 时,响应时间为 0.5秒 并发请求 > 1000 时,响应时间为 10秒 方案...

    dys

扫码关注云+社区

领取腾讯云代金券