【发布时间】:2010-09-21 03:36:54
【问题描述】:
我目前正在研究 memcached 作为协调一组服务器的方式,但在此过程中遇到了Apache's ZooKeeper。它看起来很有趣,雅虎使用它,所以它应该不坏,但我以前从未听说过它,所以我有点怀疑。有其他人尝试过吗?有什么想法或想法吗?
【问题讨论】:
标签: caching memcached apache-zookeeper
我目前正在研究 memcached 作为协调一组服务器的方式,但在此过程中遇到了Apache's ZooKeeper。它看起来很有趣,雅虎使用它,所以它应该不坏,但我以前从未听说过它,所以我有点怀疑。有其他人尝试过吗?有什么想法或想法吗?
【问题讨论】:
标签: caching memcached apache-zookeeper
ZooKeeper 和 Memcached 有不同的用途。您可以使用 memcached 进行服务器协调,但您必须自己完成大部分工作。 Memcached 仅允许协调,因为它缓存了供多个客户端使用的公共数据查找。通过阅读 ZooKeeper 的文档,它的关注点比这要广泛得多。 ZooKeeper 似乎提供了对服务器集群的支持,这与 memcached 提供的缓存集群不同。
在 memcached 上查看 Brad Fitzpatrick 的 Linux 日志 article,以更好地理解我的意思。
【讨论】:
要大致了解 Zookeper 的功能,请观看其创建者的以下演示。它还有更多功能(创建队列、在一组对等节点中选举主进程、分布式高性能运行时配置、分离进程的集合点、确定进程是否仍在运行等)。
http://zookeeper.sourceforge.net/index.sf.shtml
要回答您的问题,如果您正在寻找“协调”,Zookeeper 比 memcached 更适合此目标。
【讨论】:
Zookeeper 非常适合跨服务器协调数据。它可以很好地对每笔交易进行排序并保证交易按顺序进行。但是,当第一次闯入它时,文档很烂;这是非常“高级”的,没有足够的具体示例或解释来说明如何正确处理某些事件。包含的示例之一(从 3.3.3 版开始)有自己的错误。
您的代码还需要了解事件驱动的交互和轮询交互。使用大规模分布式架构,在对“事件”采取行动时,您可能会无意中造成您的环境不希望出现的踩踏现象(羊群效应)。
【讨论】: