1

我们需要在不同的 Web 服务器之间同步数据。这个想法非常基本:当一个实体在一台服务器上创建时,它应该被发送到所有其他服务器。正确的方法是什么?我们目前正在评估两种方法:亚马逊的 sqs 和 sns 服务以及使用一些键值数据库(如 memcached 和 memqueue)的自定义实现。自定义实现的常见缺陷是什么?任何反馈将不胜感激。

4

1 回答 1

2

如果您为每个服务器创建一个新队列并将数据写入每个队列,SQS 就可以正常工作。最大的缺点是您需要每台服务器轮询新消息。

SNS 会更有效地工作,因为它允许您将消息广播到多个位置。但是,这是一次尝试;如果一台机器在 SNS 发送它时无法收到它的通知,SNS 将不会重试。

您没有指定要发送多少条消息或您的性能要求是什么,但是任何 SQS/SNS 系统都可能会比本地内存缓存慢得多(主要是由于发送消息和接收消息的服务器之间的延迟) /键值服务器解决方案。

一个混合解决方案是使用持久存储(如 SimpleDB)并使用 SNS 来提醒服务器有新数据可用。

于 2011-07-18T12:07:22.660 回答