使用队列时处理消息顺序

时间:2017-08-25 20:36:41

标签: firebase elasticsearch message-queue messagebroker

我在Firebase中有这样的客户记录:

{
  "displayName": "John Doe",
  ...
}

我需要在Firebase中创建/更新/删除它们时在Elasticsearch实例中创建/更新/删除它们。

我试图处理对Elasticsearch的潜在失败写入。我想使用类似Firebase队列的队列,如果Elasticsearch已关闭或无法访问,则会重试写入。但是,我不确定如何解决潜在的邮件订单问题。

例如,我向Firebase写了一条新记录,然后写了一个'包含该记录的消息将放入队列以发送到Elasticsearch。然后我从Firebase中删除记录。 A'删除'消息被放入队列以发送到Elasticsearch。

写入消息由于某种原因而失败,并被放回队列中。删除消息成功。写入消息由队列重试,这次成功。我现在在Elasticsearch中有一个不应该存在的记录。

此问题并非针对Firebase或Elasticsearch ......它们恰好是我现在正在使用的工具。关于如何解决这个问题的任何建议都非常感谢!

0 个答案:

没有答案