MongoDB 可用于实时消息传递,方法是使用可尾游标来尾随有上限的集合。
为此目的使用 MongoDB 有哪些注意事项?一个明显的问题是没有内存中的集合,因此当不需要持久性时,消息可能会写入磁盘。
MongoDB 可用于实时消息传递,方法是使用可尾游标来尾随有上限的集合。
为此目的使用 MongoDB 有哪些注意事项?一个明显的问题是没有内存中的集合,因此当不需要持久性时,消息可能会写入磁盘。
一个警告是,如果你有一个副本集,那么只有一台 Mongo 机器可以接受写入。这将限制您可以为队列执行的写入次数。
另一个明显的警告是,对于有上限的集合,您显然必须在消息开始退出集合之前阅读/使用这些消息。如果消费者失败了——而你没有足够快地抓住它——你就会丢失消息。
我对你的最后一句话感到困惑。=(我敢肯定你知道 Mongo 尽最大努力将所有内容保存在 RAM 中。http://docs.mongodb.org/manual/core/capped-collections/他们没有提到上限集合不会在 RAM 中(除非您的工作集对于 RAM 来说太大了)。