MongoDB/Spring:订阅集合更改

bla*_*mpe 5 events mongodb spring-boot changestream

我正在使用 Spring Boot 应用程序。我正在尝试为 MongoDB 中的集合修改实现基于回调的事件通知。我已经没有想法了,因为我尝试了以下方法:

  • 经典轮询 - 冗余,因为现有实现是由 UI 轮询的 REST 端点,在其中查询数据。

  • 可尾游标 - 需要对集合进行上限,这可能是一个限制,不足以满足具有非常高存储预测的数据库。

  • 更改流 - 我收到运行时异常,指出存储引擎不支持“多数读取关注”。 collection.watch(asList(Aggregates.match(Filters.in("operationType", asList("insert", "update"))))).forEach(printBlock);

我无权查看引擎配置,但我假设如果 DBA 无法将存储引擎更改为wiredTiger,那么我就无法使用更改流。它是否正确?还有其他解决方案吗?spring 的 mongodb-reactive API 怎么样?我的印象是 API 仍然依赖于可尾游标或更改流。