与弹性搜索Hyperledger面料CouchDB的数据全文检索[关闭]

问题描述 投票:3回答:1

我们使用CouchDB的支持Hyperledger结构来存储记录了大量的文字。我们想建立一个解决方案,允许使用弹性搜索记录免费文本搜索。然后,问题越来越织物/ CouchDB的数据转换成实时弹性搜索。什么是做到这一点的最好办法。我能想到的三种方法: -

1)创建监听CouchDB的变化在连续模式下馈送服务(沙发具有用于此大载体)上,推压变化到消息队列(卡夫卡)。那么另一种服务可以从卡夫卡阅读并推到弹性搜索。我喜欢这个主意(“变更数据捕获”),因为我们可以再建过我们的卡夫卡日志其他读了意见。这种方法的缺点:

  • 虽然我们使用hyperledger织物,我们编程到底层数据存储(CouchDB的)。会发生什么,如果hyperledger移动到MongoDB的一年后(或决定支持它使用CouchDB一起,我们希望移动到MongoDB的)?我们将不得不重写/改变我们的卡夫卡连接器。
  • 维持两种状态:1)从CouchDB的最后一个读取的文件的偏移改变进料和2)卡夫卡偏移。我们可以使用动物园管理员这个?

2)有我们的客户端应用程序(即写入的织物)每次写入/更新时间面料发布事件到卡夫卡的人。然后另一项服务可以读取这些事件,并写入弹性。这种方法的最大con是:

  • 我们进入双写的境界(1织物,1卡夫卡),并有原子做的都没有什么好办法。这让我们容易受到竞争条件和部分失败(写布成功,但写信给卡夫卡失败等等等等)。

3)我相信hyperlerdger面料同行提供一些所谓的“事件服务”,这事件发布在每次写入总帐的时间。然而,对于这一个文档是不是伟大,我找不到任何的例子。你能不能细说了,如果你有这方面的经验?我的这种方法最大的问题是还没有经过实战检验还和很多的开发商时将进入固定的东西,当他们去,因为缺乏的文档/博客/例子等错误

非常感谢你提前的帮助。

elasticsearch apache-kafka couchdb hyperledger-fabric hyperledger
1个回答
0
投票

推荐的图案是#3 - 侦听块事件和具有的任何数据被期望成可查询的数据存储如Elasticsearch听者插入件。与基于信道的事件服务,收听者客户端,用于从某些起始块起事件寄存器。如果有任何服务中断,监听客户端可以随时从停止的地方重新开始。

这种模式具体地,和的事件服务的使用通常,在Node.js SDK event tutorial进行说明。

© www.soinside.com 2019 - 2024. All rights reserved.