1. 在生产环境下应该避免使用大事务,不建议在高并发写入场景下使用Galera Cluster架构,会导致集群限流,从而引起整个集群hang住,出现生产故障。针对这种情况可以考虑主从,实现读写分离等手段。
2. 对数据一致性要求较高,并且数据写入不频繁,数据库容量也不大(50GB左右),网络状况良好的情况下,可以考虑使用Galera方案
NDB | Galera |
mgmd,mysqld,ndbd NDB存储引擎(分布式哈希表) 需要迁移 主要用于内存中 | InnDB存储引擎 |
自动分片&用户自定义分区 出色的读写可扩展性 节点组内同步复制 | 几乎同步的多主集群复制 数据集是主要的 Dataset is the Master 全局事务ID Global Transaction ID 复制性能取决于最慢的节点 有限的写入可扩展性 |
悲观锁 | 集群宽度的乐观锁 Cluster wide optimistic locking 最早请求胜利 First to commit wins Writerset认证 Writeset Certification 热点表的死锁 “deadlocks” for “hotspots” tables |
短事务 Short transactions | 中等大小事务 Moderate sized transactions 写入集被处理为单个内存驻留缓冲区 A writeset is processed as a single memory-resident buffer |
data node的下推链接 “Push-down joins” in data nodes 在SQL node完成聚合 | 容许非顺序自动增量值 Tolerate non-sequential autoincrement values |
地理复制 Geographical Replication ¤复杂 ¤异步复制 ¤没有自动复制通道故障转移 | 地理复制 ¤容易 ¤在本地或远程节点之间没有区别 ¤将段ID设置为组节点 ¤调整一些网络超时 |
网络分组 根据分片和副本数进行分组 | 网络分组 ¤“主要组件” |
MGM(默认)或任何API节点都可以被指定为仲裁员 ¤MGM重要 ¤在生产中使用2个 | garbd仲裁员 ¤即使是#个节点 ¤复制中继 |
缩放 - X个步骤 ¤配置更改,滚动重新启动 ¤重新分配数据集,回收可用空间 | 缩放 ¤启动新节点w /现有节点的地址 ¤状态转移快照 |