我们尝试做的是Meteor使用LiveQuery对Mongo做的事情,这就是:
Livequery可以连接到数据库,假装是复制 slave,并使用复制日志。大多数数据库支持一些 复制形式,因此这是一种广泛适用的方法。这是 自MongoDB以来,Livequery更喜欢使用MongoDB的策略 没有触发器。
有没有办法在Java中用 com.mongodb。*; 创建这样的复制slave,以便它接收主Mongo服务器上发生的每次更新的任何通知?
另外,我在本地数据库中看不到任何复制日志。有没有办法打开它们?
如果用Java无法做到这一点,是否可以用其他语言创建这样的解决方案( C ++或Node.js可能)?
答案 0 :(得分:1)
您需要使用--replSet rsName
选项启动数据库,然后运行rs.initiate()
。之后,您将在本地数据库中看到rs.oplog集合。
您所描述的内容通常被称为“拖尾oplog”,它基于在封顶集合上使用Tailable Cursor(在本例中为MongoDB oplog)。机制相对简单,有很多用Java编写的oplog尾部示例,这里有几个: