我有一项任务是在分布式系统中选择实现消息代理。 Firebase云消息传递被认为是一个吗?
答案 0 :(得分:5)
没有。至少在某种意义上是不相同的,但两者都与消息的交换有关。
Firebase Cloud Messaging (FCM)通常(如果不是总是)用于Push Notifications的消息服务:
推送通知是一个"推送"从后端服务器或应用程序到用户界面,例如(但不限于)移动应用程序和桌面应用程序。它是更具体的用户体验,与Push technology不同,后者在诸如服务器到服务器通信之类的组件之间推送请求。推送通知的常见场景是客户端应用程序在应用程序的用户信息之前弹出消息以及警报声音。在某些情况下,通知还可以与图像和超文本链接相结合。通过与推送通知进行交互,它通常会将客户端应用程序调到前面。
该服务可以描述为中间件,它处理在App Server(通常是发送者)和客户端(接收者)之间发送/传递消息。但是为了让他们相应地进行通信,发送者和接收者都必须配置为自己接收消息(即他们必须调整消息)。
Message Broker被描述为:
在computer programming中,消息代理是一个中间人program module,它将消息从发件人的正式消息传递协议转换为接收者的正式消息传递协议。消息代理是电信或计算机网络中的元素,其中软件应用程序通过交换正式定义的消息进行通信。消息代理是Message oriented middleware的构建块。
从描述本身,消息代理也可以被视为中间件,但它的任务更多的是转换/转换/调整消息,以便从消息中发送消息接收器将接收器顺利接收。
维基百科页面还提供了一个可用的Message Broker软件列表,其中包含:
- Apache ActiveMQ
- Apache Kafka
- Apache Qpid
- Celery
- Cloverleaf (E-Novation Lifeline)
- 康福消息代理(Comverse Technology)
- Enduro/X Transactional Message Queue (TMQ)
- Financial Fusion Message Broker(Sybase - acquired,SAP,2010年)
- JBoss A-MQ(又名.Fuse Message Broker - 企业ActiveMQ - 2012年acquired RedHat)
- Gearman
- HornetQ (Red Hat)(donated到Apache ActiveMQ社区)
- IBM Integration Bus
- IBM Message Queues
- JBoss Messaging(JBoss - 转移到HornetQ,现在它处于错误修复模式)
- JORAM
- Azure Service Bus (Microsoft)
- BizTalk Server (Microsoft)
- NATS (MIT Open Source License, written in Go)
- Open Message Queue
- Oracle Message Broker (Oracle Corporation)
- QDB (Apache License 2.0, supports message replay by timestamp)
- RabbitMQ (Mozilla Public License, written in Erlang)
- Redis一个开源的内存数据结构存储,用作数据库,缓存和消息代理。
- SAP PI (SAP AG)
- Solace Systems Message Router
- Spread Toolkit
- Tarantool, a NoSQL database, with a set of stored procedures for message queues
- WSO2 Message Broker