Sim*_*san 5 java spring couchbase spring-data-couchbase
我希望能够在Couchbase中更新或创建文档时进行一些数据操作。
文档可以通过Sync Gateway或我们自己的从http服务流式传输数据的代码到达我们的数据库。拥有一个可以拦截所有更新的位置,将是很棒的。
我们正在对此数据运行一个Spring Boot REST API,因此这是拥有拦截器/侦听器的好地方。无论哪种方式,我都倾向于Java解决方案。
数据被编写为JSON而不是使用Spring实体,所以我不能使用仅侦听Entity类事件的ApplicationListener。如果我错了纠正我。我可以找到一些珍贵的设置ApplicationListeners的示例,因此我在这里可能错了,但似乎无法正常工作。
我看到有一个Eventing服务,您可以在其中编写Java脚本,但是由于多种原因,我不希望这样做。我不希望在平台和语言之间分散我们的API代码,也不确定是否可以在我们的系统上运行事件服务,等等。同样,我也可以公开辩论。
就我所知,这仅使DCP显得很低。 https://blog.couchbase.com/couchbases-history-everything-dcp/,但看起来像是完成这项工作的工具。
问题:是否有另一种较低级别的方法来捕获Couchbase中的JSON对象(不是DCP实体)的更新事件。
免责声明:我为 Couchbase 工作并开发 Java DCP 客户端。
如果您已经评估了 Eventing 服务并确定它不满足您的要求,那么Java DCP 客户端可能值得研究,即使它不受官方支持。它被用于 Kafka、Spark 和 Elasticsearch(所有这些都是开源的)的官方 Couchbase 连接器使用并得到积极维护。
如果您只关心自应用程序启动以来发生的事件,那么使用就像注册回调和启动事件流一样简单。如果您需要记住您在流中的位置并稍后恢复(例如,处理离线时发生的事件),事情会变得更加复杂,但也有针对这种情况的示例代码。
DCP 协议本身是有据可查的。如果您决定走这条路,至少阅读该文档的架构部分可能会很好。另请注意,由于不支持 Java DCP 客户端,API 可能会更改,恕不另行通知。(正式支持该库并提供更友好的 API 是我们的长期目标之一,但我们还没有做出任何承诺。)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |