我的目标是只利用elasticsearch构建一个类似mqtt的发布/订阅服务。
我想实现的案例研究场景是:
用户a在elasticsearch索引中创建消息(文档)
用户b被警告并更新索引上的新消息。
我使用的是纯java客户端,因为在android中我不能使用高级ElasticSearch客户端。我拥有所有允许我从es索引发送和读取文档的功能,但是我希望找到为用户b实现订阅服务的最佳方法,而不必强迫他每隔几秒钟轮询一次更新。
关于这个我不知道从哪里开始。我在es中找不到任何可用的触发器/websocket服务。请提供一些想法/文档。
1条答案
按热度按时间yuvru6vn1#
您可以使用ElasticSearch观察程序在满足特定条件时触发操作。一个示例用例是,如果您在ElasticSearch示例中从meetup.com摄取实时数据,并希望接收有关您可能感兴趣的事件的电子邮件通知。
对于您的特定用例,您可以创建一个监视,当用户a在索引中添加文档时触发该监视。监视操作可以是向用户b发送电子邮件,或者调用自己的api来通知所有订阅了用户a的用户(参见webhook操作)。
我自己没试过,但这似乎是个好的开始。