aru*_*esh 15 java mysql replication database-replication apache-zookeeper
我最近一直在阅读Paxos论文,FLP定理等,并为一个项目评估Apache Zookeeper.我也一直在通过Chubby(谷歌的分布式锁定服务)以及可在线获得的各种文献.我对Zookeeper的基本用法是为分布式系统实现复制和一般协调.
我只是想知道,Zookeeper或像分布式锁定系统这样的Chubby带来的具体优势是什么.基本上我只是想知道为什么我不能只使用MySQL NDB集群.我一直听说MySQL有很多复制问题.我希望有一些关于这个主题的更多经验可能会对它有所了解.
提前致谢..
简单列出我的要求:
Ben*_*eed 16
这取决于您管理的数据类型以及您要使用的规模和容错能力.
我可以从ZooKeeper的角度回答.在开始之前我应该提到ZooKeeper不是Chubby克隆.具体来说,它不直接进行锁定.它的设计考虑了不同的订购和性能要求.
在ZooKeeper中,系统状态的整个副本是内存驻留.使用原子广播协议复制更改,并在处理之前由大多数ZooKeeper服务器同步到磁盘(使用更改日志).因为这个ZooKeeper具有确定性的性能,只要大多数服务器启动就可以容忍故障.即使有很大的中断,例如电源故障,只要大多数服务器重新上线,系统状态就会得到保留.存储的信息是ZooKeeper,通常被认为是系统的基本事实,因此这种一致性和持久性保证非常重要.
ZooKeeper提供的其他功能与监视动态协调状态有关.短暂节点允许您轻松进行故障检测和组成员身份.订购保证允许您进行领导者选举和客户端锁定.最后,手表允许您监视系统状态并快速响应系统状态的变化.
因此,如果您需要管理和响应动态配置,检测故障,选举领导等,ZooKeeper就是您所需要的.如果您需要存储大量数据,或者需要关系模型来获取该数据,那么MySQL是一个更好的选择.
Mar*_*tin 12
带有Innodb的MySQL提供了一个很好的通用解决方案,并且可能很容易在不太昂贵的硬件上满足您的性能要求.它可以在具有合适磁盘的双四核盒上轻松处理每秒数千次更新.内置的异步复制将为您提供满足可用性要求的大部分方法 - 但如果主要数据失败,您可能会丢失几秒钟的数据.修复主数据库时,某些丢失的数据可能是可恢复的,或者可能可以从应用程序日志中恢复:是否可以容忍这取决于系统的工作方式.一个损耗较小但速度较慢的替代方案是使用MySQL Innodb与主要和故障转移单元之间的共享磁盘:在这种情况下,故障转移单元将在主要故障时接管磁盘而不会丢失数据 - 只要主要没有某种盘灾难.如果共享磁盘不可用,则可以使用DRBD通过在写入时将磁盘块同步复制到故障转移单元来模拟此情况:这可能会对性能产生影响.
使用Innodb和上面的复制解决方案之一会将您的数据复制到故障转移单元,这是解决了恢复问题的很大一部分,但需要额外的胶水来重新配置系统以使故障转移单元联机.这通常使用集群系统(如RHCS或Pacemaker或Heartbeat(在Linux上)或Windows的MS Cluster内容)执行.这些系统都是工具包,您可以将它们弄脏,将它们构建成适合您环境的解决方案.但是,对于所有这些系统,在系统注意到主节点发生故障时会出现短暂的中断期,并重新配置系统以使用故障转移单元.这可能是几十秒:尝试减少这种情况可能会使您的故障检测系统过于敏感,并且您可能会发现系统无法进行故障转移.
向上移动,MySQL NDB旨在缩短恢复时间,并在某种程度上帮助扩展数据库以提高性能.但是,MySQL NDB的适用范围非常窄.系统将关系数据库映射到分布式哈希表,因此对于涉及跨表的多个连接的复杂查询,MySQL组件与存储组件(NDB节点)之间存在相当多的流量,使得复杂查询运行缓慢.但是,确实适合的查询运行速度非常快.我已经看了几次这个产品,但是我现有的数据库太复杂了,不能很好地适应,需要进行大量的重新设计才能获得良好的性能.但是,如果您处于新系统的设计阶段,如果您可以随时考虑其约束,NDB将会运行良好.此外,您可能会发现需要相当多的机器才能提供良好的NDB解决方案:一些MySQL节点加上3个或更多NDB节点 - 尽管如果您的性能需求不是太极端,MySQL和NDB节点可以共存.
甚至MySQL NDB也无法应对总站点丢失 - 数据中心的火灾,管理错误等.在这种情况下,您通常需要另一个运行到DR站点的复制流.这通常是异步完成的,因此站点间链接上的连接闪烁不会使整个数据库停滞.这是随着NDB的地理复制选项(付费电信版)提供的,但我认为MySQL 5.1及以上版本可以提供本地版本.
不幸的是,我对Zookeeper和Chubby知之甚少.希望其他人可以接受这些方面.
| 归档时间: |
|
| 查看次数: |
6478 次 |
| 最近记录: |