java - ElasticSearch 事件监听器

标签 java elasticsearch publish-subscribe

我的目标是仅通过利用 Elasticsearch 来构建类似MQTT 发布/订阅 的服务。

我想实现的案例研究场景是这样的:

  1. 用户 A 在 Elasticsearch 索引中创建一条消息(文档)
  2. 用户 B 收到关于索引上的新消息的警告和更新。

我使用的是普通 Java 客户端,因为在 Android 中我无法使用高级 Elasticsearch 客户端。 我拥有允许我从 ES 索引发送和读取文档的所有内容,但我想找到为用户 B 实现订阅服务的最佳方法,而不是强制他每隔几秒轮询一次更新。

关于这个我不知道从哪里开始。我没有在 ES 中找到任何可用的触发器/websocket 服务。请提供一些想法/文档。

最佳答案

您可以使用 Elasticsearch Watcher当满足特定条件时触发 Action 。一个example用例是如果您在 Elastic Search 实例中从 Meetup.com 获取实时数据并希望接收有关您可能感兴趣的事件的电子邮件通知。

对于您的特定用例,您可以创建一个 watch ,当用户 A 在索引中添加文档时触发。 watch 操作可以是向用户 B 发送电子邮件或调用您自己的 API,负责通知所有已订阅用户 A 的用户(参见 Webhook action)。

我自己还没有尝试过,但这似乎是一个不错的起点。

关于java - ElasticSearch 事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927354/

相关文章:

java - 图像未显示在图像按钮中

node.js - aws elasticsearch 在发布请求时出现签名错误

elasticsearch - 如何使用 Elasticsearch 创建带有 or 子句的搜索

elasticsearch - elasticsearch edge n-gram token 生成器:在 token 中包含符号

java - 响应式(Reactive) Redis 主题中发布的消息不会发送到客户端

java - 检查扫描仪输入是否只是一个整数

java - Arrays.sort() 与使用 map 排序

java - App Engine Mapreduce Java无法编译MapReduce Specification.of

.net - 我应该使用什么技术来实现可从 .NET 访问的持久订阅者?

notifications - AWS : Broadcast notifications for multiple worker processes running on multiple instances