如何提高发布/订阅设计的可靠性?

时间:2020-05-28 12:39:15

标签: message-queue publish-subscribe scalability reliability

我有一项订阅消息代理中主题的服务。我需要提高可靠性,并确保发布到该主题的所有消息都不会丢失。因此,为此需要管理服务的多个副本。目前有两个选项:

  1. 在开始时启动多个服务,从每个服务订阅该主题。消息发布后,所有服务都会收到该消息。为了避免重复处理,请利用数据库在其中服务尝试插入包含消息详细信息的行的数据库。现在,如果已经存在一个包含详细信息的条目,则插入将失败,并且该服务将停止处理。这样,只有一个服务可以写入数据库,并且有权处理该消息。休息将忽略该消息。 (这里的问题是额外连接的开销)

  2. 在开始时启动了多个服务,但是只有一个服务将订阅该主题。每当此服务出现故障时,另一个服务就会带头。类似共识算法中的领导者选举过程。 (这里是问题的复杂性)

我能以其他方式处理此用例吗?

0 个答案:

没有答案