环境:C#Winforms,SDK 1.2
我是Couchbase的新手,所以我可能错过了一些东西。我想要实现的是当文档在被XDCR复制后更新时向客户端发送推送通知。我的用例如下:
这是Observe()方法可以做的事情还是有另一种方法?使用TAP似乎存在风险,因为这是一个可能会发生变化的内部API。
- d
答案 0 :(得分:2)
答案也发布到Couchbase论坛,但在此复制...... http://www.couchbase.com/forums/thread/notify-client-change#comment-1008518
客户端不知道XDCR复制,并且没有任何挂钩到XDCR事件。遗憾的是,客户端实例无法知道密钥是否已复制到其集群中。
假设K2需要对已复制到C2的数据进行操作,那么(一种是未经测试的)替代方案是将C2复制到ASP.NET端点。在这种情况下,您可以使用我最近写的Nancy端点 - http://blog.couchbase.com/xdcr-aspnet-and-nancy。
基本上,在C1 XDCR复制到C2之后,您可以从C2推送到您的应用程序,该应用程序将通过Nancy或通过将我的Nancy应用程序中的代码复制到您现有的Web应用程序中来定义XDCR端点。端点主机并不重要,但URI(例如/ pools)和JSON响应是。同样,这里的想法是你将K2应用程序视为第三个XDCR端点,但只有在C2从C1获取后才能接收其密钥。
Observe用于指定存储或删除键时的耐久性要求。例如,当且仅当密钥持久保存到其主节点并且(在内存或磁盘中)复制到两个副本节点时,您可以要求客户端考虑存储操作成功。 http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-st ...