MongoDB ChangeStream功能是否可以替代发布/订阅技术

时间:2018-10-11 05:46:49

标签: mongodb apache-kafka rabbitmq publish-subscribe

我正在经历MongoDB ChangeStream,我知道它减少了拖尾oplog的风险-我们目前正在拖尾oplog以将数据发布到Kafka。

请帮助我理解,因此与Kafka或RabbitMQ这样的发布/订阅技术相比,如何更好地改变流

1 个答案:

答案 0 :(得分:0)

不应将ChangeStreams与Pub / Sub技术进行比较-ChangeStreams提供了一种安全的方式来使实时(数据)更改事件能够被捕获然后进行处理(正如您正确指出的那样,以前您必须在MongoDB中添加oplog,以实现类似的结果,它具有一系列自身的问题,风险和复杂性,这会给开发人员带来负担。

如上所述,ChangeStreams提供了一种安全的方法来查看MongoDB中发生的每个数据更改事件,对这些事件应用过滤器,然后处理每个合格事件。通过ChangeStreams,您可以根据oplog覆盖的时间段重播以前的事件-例如,如果实现ChangeStreams的应用程序失败,则可以从应用程序失败的那一刻开始。

从事件标识/处理的角度来看,ChangeStreams表现出类似Pub / Sub的行为,这就是相似性停止的地方。您想在MongoDB中捕获/识别数据更改事件以进行下游处理的典型/常见用例是创建一个利用MongoDB驱动程序,实例化ChangeStream以及针对MongoDB中发生的每个合格事件的Kafka Producer(通过ChangeStream提供)将其传递给Kafka。