【发布时间】:2018-10-16 21:31:46
【问题描述】:
我希望能够在 Couchbase 中更新或创建文档时进行一些数据操作。
文档可以通过同步网关或我们自己的代码到达我们的数据库,该代码从 http 服务流式传输数据。如果有一个地方可以拦截所有更新,那就太好了。
我们正在针对这些数据运行 Spring Boot REST API,因此这将是拥有拦截器/侦听器的好地方。无论哪种方式,我都偏爱 Java 解决方案。
数据以 JSON 格式编写,而不是使用 Spring 实体,因此我不能使用仅侦听 Entity 类上的事件的 ApplicationListener。如我错了请纠正我。我可以找到一些设置 ApplicationListeners 的宝贵示例,所以我在这里可能错了,但我似乎无法让它工作。
我看到有一个 Eventing 服务,您可以在其中编写 Javascript,但出于多种原因,我并不热衷于采用这种方式。我不热衷于跨平台和语言分割我们的 API 代码,不确定我是否可以在我们的系统上运行事件服务等。不过,我还是愿意辩论。
据我所知,这仅剩下 DCP 似乎非常低的级别。 https://blog.couchbase.com/couchbases-history-everything-dcp/ 但看起来像是工作的工具。
问题:是否有另一种较低级别的方法来捕获 Couchbase 中 JSON 对象而不是 DCP 以外的实体的更新事件。
【问题讨论】:
-
我很好奇,如果 Couchbase 不完全符合您的要求,您为什么要选择它?问是因为我目前参与的项目也是如此。
-
感谢您花时间阅读 Q。Couchbase 是给定的,因为涉及到 Sync Gateway 和 Android。
-
这里有一些很棒的信息。我采用了不同的路径并使用 Kafka 连接器将 Couchbase 服务器中的事件流式传输到 Kafka 主题中,然后我可以将其转发到相关服务。这对我们来说是一个非常可扩展且迄今为止非常可靠的解决方案,但显然依赖于 Kafka 主干。仅供阅读本文的任何人参考。我们使用的 Couchbase 连接器是 Debezium 连接器,无需修改即可使用
标签: java spring couchbase spring-data-couchbase