通知微服务的现成解决方案

时间:2018-09-09 08:53:37

标签: notifications microservices

我有一个微服务架构,现在我需要引入一个通知中心。要求是:任何服务都可以发送通知,任何服务都可以订阅任何类型的通知,UI(web)可以订阅通知(首选websocket)。当然,我可以自己编写这样的服务,但是也许有现成的健壮解决方案。

UPD:我不是在寻找发布/订阅消息系统,因为它对于通知中心而言太底层了

1 个答案:

答案 0 :(得分:0)

您正在寻找的是发布订阅者消息。如果您使用的是AWS Stack,那么我可以推荐Amazon SNS或Amazon SQS。我认为Amazon SNS更适合,因为它基于推送。

  

Amazon SNS 允许应用程序通过“推送”机制向多个订户发送时间紧迫的消息,从而消除了需求   定期检查或“轮询”更新。

     

Amazon SQS 是消息队列服务,分布式应用程序使用该消息队列服务通过轮询模型交换消息,并且可以   用于解耦发送和接收组件,无需任何操作   每个组件都可以同时使用。

在Amazon Web服务堆栈之外,有很多免费的消息传递解决方案:

  

RabbitMQ 是AMQP协议(与Apache Qpid一起)的主要实现之一。因此,它实现了一个经纪人   体系结构,这意味着消息在中央节点上排队   在发送给客户之前。这种方法使RabbitMQ非常容易   使用和部署,因为路由,负载等高级方案   仅有少数几个支持平衡或持久消息队列   代码行。但是,它也使它的可伸缩性降低,并且“速度较慢”   因为中央节点增加了延迟,并且消息包络相当   大。

     

ZeroMq 是一种非常轻巧的消息传递系统,专门为高吞吐量/低延迟的方案(例如您可以在其中找到的方案)设计   金融世界。 Zmq支持许多高级消息传递方案   但是与RabbitMQ相反,您必须实施大多数   通过组合框架的各个部分来自己动手(例如:套接字   和设备)。

     

ActiveMQ 位于中间。与Zmq一样,它可以与代理和P2P拓扑一起部署。像RabbitMQ一样,   实施高级方案,但通常以原始成本为代价   性能。

现在您知道您的需求了,我建议您通读一遍技术,然后确定哪种技术可以更准确地实现您的目标。如果那不值得我们花费时间,而您的要求更加具体且相对较小,那么您可以自己编写一些东西。