您可以使用Couchbase数据库更改协议(DCP)客户端来监视删除操作。有关示例客户端,请参阅java-dcp-client,该客户端将记录消息的缺失和突变。
Mutation: MutationMessage [key: "test123", vbid: 20, cas: 1502245791579701248,
bySeqno: 1, revSeqno: 1, flags: 0, expiry: 0, lockTime: 0,
clength: 67]
Deletion: DeletionMessage [key: "test123", vbid: 20, cas: 1502245805446594560,
bySeqno: 2, revSeqno: 2]
检查新创建文档的过期时间,看看您是否无意中设置了文档的生存时间。
如果使用端口8091上的REST端点执行删除,它们将在http_access.log文件中报告。有关在您的环境中查找日志文件的位置的信息,请参阅Using Logs (4.5)。这也会给你提出请求的机器的IP地址。
http_access.log:127.0.0.1 - ui-token [08/Aug/2017:22:30:05 -0400]
"DELETE /pools/default/buckets/default/docs/test123 HTTP/1.1" 200 2
http://localhost:8091/ui/index.html Mozilla/5.0 (Macintosh; Intel Mac
OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/59.0.3071.115 Safari/537.36
嗨,杰夫。感谢您的回应。我们做客户端日志记录,但并非所有的客户端都使用相同的库,其中一些没有这种功能。 http日志将包含有关API调用的信息,如集群,节点,存储桶,视图,cdcr,压缩和用户api。我不认为CB有文件的api(这是一段时间的分离项目,我认为它已经停止)。无论如何,它并不适用于我的情况。 –
Hi @JenoLaszlo。我提到的DCP客户端会直接与群集交谈,所以您至少知道文件何时被删除。但我想你必须能够独立运行应用程序,否则你无法知道哪个客户端应用程序负责删除。 –