Couchbase bucket内更改的异步客户端通知

Couchbase bucket内更改的异步客户端通知,couchbase,Couchbase,环境:C#Winforms,SDK 1.2 我是Couchbase的新手,所以我可能错过了一些东西。我想要实现的是,当文档被XDCR复制后更新时,向客户机发送推送通知。我的用例如下所示: 两个集群(CL1、CL2),每个集群中有一个节点 两个客户端(K1,K2),K1连接到CL1,K2连接到CL2 K1更改为DocA DocA通过XDCR从CL1-->CL2复制 一旦DocA位于CL2中,就会通知客户端K2 这是Observe()方法可以做的事情,还是有其他方法?使用TAP似乎有风险,因为这

环境:C#Winforms,SDK 1.2

我是Couchbase的新手,所以我可能错过了一些东西。我想要实现的是,当文档被XDCR复制后更新时,向客户机发送推送通知。我的用例如下所示:

  • 两个集群(CL1、CL2),每个集群中有一个节点
  • 两个客户端(K1,K2),K1连接到CL1,K2连接到CL2
  • K1更改为DocA
  • DocA通过XDCR从CL1-->CL2复制
  • 一旦DocA位于CL2中,就会通知客户端K2
这是Observe()方法可以做的事情,还是有其他方法?使用TAP似乎有风险,因为这是一个可能发生更改的内部API


--答案也发布在Couchbase论坛上,但复制到这里

客户端不知道XDCR复制,并且它没有任何到XDCR事件的挂钩。因此,不幸的是,客户机实例无法知道密钥已复制到其集群

假设K2需要对复制到C2的数据进行操作,一种(公认未经测试的)替代方法是让C2复制到ASP.NET端点。在本例中,您可以使用我最近编写的Nancy端点-

  • K1将密钥写入C1
  • C1(通过XDCR)向C2发送钥匙
  • C2(通过XDCR)将密钥发送到端点
  • K2在IReplicationHandler子类中使用(有关详细信息,请参阅博客)
  • 因此,基本上,在C1 XDCR复制到C2之后,您将从C2推送到您的应用程序,该应用程序将通过Nancy或通过将代码从my Nancy应用程序复制到您现有的web应用程序中来定义XDCR端点。端点主机并不重要,但URI(例如,/pool)和JSON响应很重要。同样,这里的想法是,您将K2应用程序视为第三个XDCR端点,但只有在C2从C1获取密钥后才能接收其密钥


    “遵守”用于指定存放或取下钥匙时的耐久性要求。例如,您可以要求客户端考虑一个存储操作是否成功,当且仅当一个密钥被持久化到它的主节点并在内存或磁盘中复制到两个副本节点时……p> 嘿,我刚看完你的解释就来了。我只是想知道在哪里可以找到XCDR端点需要实现的REST-API文档。以防人们想在不同的环境中这样做。