我有一个任务,在分布式系统中实现一个消息代理。Firebase Cloud Messaging 是否被视为其中之一?
No.至少在某种意义上不相同,但是两者都与消息交换有关。
Firebase Cloud Messaging (FCM) 是一种消息传递服务,通常(如果不是总是)用于推送通知:
推送通知是从后端服务器或应用程序">推送"到用户界面的消息,例如(但不限于)移动应用程序和桌面应用程序。它更特定于用户体验,这与推送技术不同,后者在组件(如服务器到服务器通信)之间推送请求。推送通知的常见方案是客户端应用程序在应用程序的用户信息前面弹出一条消息以及警报声音。在某些情况下,通知还可以与图像和超文本链接结合使用。通过与推送通知交互,它通常会将客户端应用程序带到前面。
该服务可以描述为处理应用服务器(通常是发送方)和客户端(接收方)之间消息发送/传递的中间件。但是,为了使它们进行相应的通信,发送方和接收方都必须配置为接收消息本身(即,他们是必须适应消息的人)。
消息代理被描述为:
在计算机编程中,消息代理是一个中间程序模块,它将消息从发送方的正式消息传递协议转换为接收方的正式消息传递协议。消息代理是电信或计算机网络中的元素,其中软件应用程序通过交换正式定义的消息进行通信。消息代理是面向消息的中间件的构建块。
从描述本身来看,消息代理也可以被视为中间件,但它的任务更多的是转换/翻译/调整消息,以便接收方能够顺利接收消息。
维基百科页面中还有一个可用的消息代理软件列表,其中包含:
- Apache ActiveMQ
- 阿帕奇·卡夫卡
- Apache Qpid
- 芹菜
- 三叶草(电子创新生命线)
- Comverse Message Broker (Comverse Technology)
- Enduro/X 事务性消息队列 (TMQ)
- Financial Fusion Message Broker(Sybase - 2010年被SAP收购)
- JBoss A-MQ (又名.Fuse Message Broker - Enterprise ActiveMQ - 2012年被RedHat收购)
- 齿轮工
- HornetQ (Red Hat)(捐赠给Apache ActiveMQ社区)
- IBM Integration Bus
- IBM 消息队列
- JBoss 消息传递(JBoss - 移至 HornetQ,现在处于错误修复模式)
- 乔拉姆
- Azure Service Bus (Microsoft)
- BizTalk Server (Microsoft)
- NATS(MIT Open Source License,用 Go 编写)
- 打开消息队列
- Oracle Message Broker (Oracle Corporation)
- QDB(Apache 许可证 2.0,支持按时间戳重放消息)
- RabbitMQ(Mozilla Public License,用 Erlang 编写)
- Redis 一种开源的内存数据结构存储,用作数据库、缓存和消息代理。
SAP- PI (SAP AG)
- 慰藉系统消息路由器
- 点差工具包
- Tarantool,一个NoSQL数据库,具有一组用于消息队列的存储过程
- WSO2 消息代理