如何在 Couchbase 中捕获保存或更新事件

2023-12-25

我希望能够在 Couchbase 中更新或创建文档时进行一些数据操作。

文档可以通过 Sync Gateway 或我们自己的代码(从 http 服务流式传输数据)到达我们的数据库。如果有一个地方可以拦截所有更新,那就太好了。

我们正在针对这些数据运行 Spring Boot REST API,因此这将是放置拦截器/侦听器的好地方。不管怎样,我更喜欢 Java 解决方案。

数据以 JSON 形式编写,而不是使用 Spring 实体,因此我无法使用仅侦听实体类上的事件的 ApplicationListener。如我错了请纠正我。我可以找到一些宝贵的设置 ApplicationListener 的示例,所以我在这里可能是错的,但我似乎无法让它工作。

我看到有一个 Eventing 服务,您可以在其中编写 Javascript,但由于多种原因,我不热衷于这样做。我不热衷于跨平台和语言分割我们的 API 代码,不确定我是否可以在我们的系统上运行事件服务等。同样,我愿意接受辩论。

据我所知,DCP 的水平似乎非常低。https://blog.couchbase.com/couchbases-history-everything-dcp/ https://blog.couchbase.com/couchbases-history-everything-dcp/但看起来像是完成这项工作的工具。

问题:是否有一种替代的、级别较低的方法来捕获 Couchbase 中 JSON 对象(而不是 DCP 以外的实体)的更新事件。


免责声明:我在 Couchbase 工作并开发 Java DCP 客户端。

如果您已经评估了 Eventing 服务并认为它不满足您的要求,Java DCP 客户端 https://github.com/couchbase/java-dcp-client可能值得研究,即使它不是正式支持的。它由 Kafka、Spark 和 Elasticsearch(所有这些都是开源的)的官方 Couchbase 连接器使用,并得到积极维护。

如果您只关心自应用程序启动以来发生的事件,那么使用可以像注册回调并启动事件流 https://github.com/couchbase/java-dcp-client/blob/master/examples/src/main/java/com/couchbase/client/dcp/examples/PrintIncomingChanges.java。如果您需要记住您在流中的位置并稍后恢复(例如,处理您离线时发生的事件),事情会变得有点复杂,但是有该案例的示例代码也适用 https://github.com/couchbase/java-dcp-client/blob/master/examples/src/main/java/com/couchbase/client/dcp/examples/StatePersistence.java.

DCP协议本身是有据可查 https://github.com/couchbase/kv_engine/tree/master/docs/dcp。如果您决定走这条路,那么至少阅读一下建筑学该文档的部分。另请注意,由于不支持 Java DCP 客户端,因此 API 可能会更改,恕不另行通知。 (正式支持该库并提供更友好的 API 是我们的长期目标之一,但我们尚未做出任何承诺。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Couchbase 中捕获保存或更新事件 的相关文章

  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 将不同类型的参数传递给 jdbctemplate 查询

    我正在尝试使用带有少量不同类型参数的 where 子句从数据库中检索记录 这是我编写的简单方法 我将breedId和性别作为参数传递 public List
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 防止 git checkout 覆盖文件

    另一位开发人员将他的 rvmrc 检查到了 git 存储库中 我已经删除了它并将其添加到 gitignore 但每次需要返回时它都会覆盖我的 rvmrc 我使用的是 OSX 所以我发现我可以使用 OSX 文件锁定机制 获取信息中的 锁定 复
  • 如何在数据库中保存标签(关键字)?

    我想使用 php 和 mysql 创建一个简单的标签系统 以便用户可以通过表单添加一些标签 我的问题是我应该将标签保存为单个数据库列中的数组吗 例如 tag1 tag2 tag3 或者我应该在数据库表中有单独的列 我应该在每列中保存每个标签
  • PowerShell 按嵌套字段选择和分组

    我有以下对象结构 resources Array resource PSCustomObject 名称 字符串 Tags PSCustomObject 所有者 字符串 more 所以我可以做 resources 0 Tags Owner并获
  • 在 iOS 中使用 AVCapture 捕获视频时进行缩放

    我正在使用 AVCapture 捕获视频并保存它 但我需要提供缩放选项 例如捏合缩放或通过缩放按钮 此外 视频的保存方式应与显示的方式完全相同 我的意思是当放大时 应以缩放的方式保存 如有任何帮助 链接将不胜感激 我设置 AVCapture
  • perl 正则表达式中的 OR 条件

    我正在尝试编写一个脚本 通过 Perl 中的正则表达式执行 OR 函数 我编写了一段代码 其中如果字符串包含 D 或 E 后跟 P 则应该打印 D或E后跟P 否则 D或E后不跟P 假设如果我给出 s ABCDEABCDEPABCDEAB 它
  • SameSite Cookie 标头和 Websocket 不起作用

    在我们设置 SameSite None 之前 我们的游戏无法在任何第 3 方网站上运行 正如这段视频中所示 https youtu be AYCvCrZyDk https youtu be AYCvCrZyDk 网站已加载 但网络套接字无法
  • OCaml 中的惰性“n 选择 k”

    作为枚举集合的更大问题的一部分 我需要编写一个 OCaml 函数 choose 它接受一个列表并输出为由该列表的元素组成的所有可能的大小为 k 的序列的列表 不重复序列 这可以可以通过排列相互获得 它们在最终列表中的顺序无关 例如 choo
  • 如何在reactjs中使用formData添加多个图像

    我是 Reactjs 新手 我正在使用环回存储连接器来存储图像 文件 现在我的问题是使用上传多个文件formData my code constructor props super props this state car photo Ca
  • 按项目分组时,测试显示在测试资源管理器的“外部”类别下

    Whenever I try to run tests on Test Explorer from Visual Studio 2012 SOME test are being categorized as External even th
  • 在两个数字和一个稀有数字之间生成随机数

    我可以使用这个在c中生成两个数字之间的随机数 arc4random high low 1 low 那么现在我的要求是 我想让一个数字变得稀有 这意味着如果 高 5 低 1 稀有 3 比 3 出现的次数比 1 2 4 和 5 少得多 Than
  • #1062 - 密钥 1 的重复条目“1” - 未找到重复条目

    因此 当尝试向字段添加自动增量时 会出现 1062 Duplicate entry 1 for key 1 我尝试删除主键并重新添加它 效果很好 我认为如果有重复项就不会 但是当我尝试向该字段添加自动增量时 它会抛出错误 它为我提供了一个运
  • 在bash脚本中使用Linux命令的正确方法

    就其路径而言 在 bash 脚本中使用 Linux 命令的最佳和最正确的方法是什么 仅使用正确吗ip addr show 依赖于 shell 路径 PATH https pubs opengroup org onlinepubs 96999
  • glMultiDrawIndirect 和 DrawElementsIndirectCommands 不渲染所有对象

    我似乎正在使用glMultiDraw间接 MDI 和 或绘制元素间接命令 DEIC 不正确 因为我无法正确渲染所有对象 该方法尝试对相似的对象和纹理重用绘制命令 实例化 ish 在所有位置绘制所有对象 调试 方法仅对每个对象 两个三角形 使
  • Javascript提示并提醒输入一个数字,它会循环,你将输入数字以获得它的平均值

    我有下面带有循环的 javascript 代码 但我无法得到它的平均值 我不确定我的代码有什么问题 就像第一个提示你输入一个数字 它会循环 你输入数字 比如你输入了多少 你会得到所有数字的总和 完成后得到它的平均值 这是我的代码 函数 sh
  • 使用 nginx、letsencrypt 和 uwsgi 配置时无法获得安全连接

    我正在努力解决无法通过安全连接获取 Flask 应用程序的问题 每当我打开网站时 都会看到一个黄色感叹号 表示我的连接不安全 我看过所有教程 但似乎不明白为什么会发生这种情况 有人可以帮助我吗 下面是配置 UWSGI命令 screen uw
  • 如何处理使用Android MediaRecorder录制的文件

    我正在使用 Android 网站上的以下示例进行音频录制 http developer android com guide topics media audio capture html http developer android com
  • 如何在标准 Web 表单 .Net 中返回 JSON 对象

    目标是调用一个执行该操作的方法 然后返回一个 JSON 对象 我是 JSON 新手 我有一个default aspx 其中包含以下代码 现在我想要 Default aspx cs 中的普通方法在此处的单击事件上运行 day click fu
  • OpenCV houghLinesP 参数

    我很难在 Python 中使用 HoughLinesP 和 OpenCV 找到该图像中棋盘上的线 为了理解 HoughLinesP 的参数 我提出了以下代码 import numpy as np import cv2 from matplo
  • 使用四开版制作双面漂亮的 PDF

    免责声明 我借用了最多的代码使用四开本制作漂亮的 PDF https nrennie rbind io blog making pretty pdf quarto 我的代码可以正常工作classoption oneside 但有问题clas
  • 如何在 Couchbase 中捕获保存或更新事件

    我希望能够在 Couchbase 中更新或创建文档时进行一些数据操作 文档可以通过 Sync Gateway 或我们自己的代码 从 http 服务流式传输数据 到达我们的数据库 如果有一个地方可以拦截所有更新 那就太好了 我们正在针对这些数