mongodb是否具有类似Redis的关键超时能力?我需要这个"健康检查"不同的机器同时向Mongo提供数据。
每台机器都负责收集不同的数据集,但是如果其中一个数据发生故障,那么我需要另一个人知道这一点,并接管死机的任务(以及保留其中的任务)自己的捕获任务运行)。问题是,我怎么知道一台机器是否已经关闭?
我的想法是让每台"喂料机"经常(比如每秒)更新一个健康文档集合,其状态为文档,例如,超时5秒。如果该文件消失,那么该机器已经关闭。
可以用Mongo完成吗?或者是否有另一种设计模式不涉及不断轮询每台机器的数据流到Mongo,这将实现相同的目标?
答案 0 :(得分:3)
MongoDB has TTL (Time To Live) collections.
对于确定机器运行状况的问题,我想说将它与MongoDB或任何数据存储区耦合起来不是一个好主意。
您可以让主/协调器从不同的计算机接收ping /心跳,然后相应地分配任务。