java - 消息队列系统通常交换什么样的消息格式?

标签 java jakarta-ee networking tcp message-queue

我正在尝试了解消息队列的基础知识。我看到有许多可用作 MQ 库的实现(ActiveMQ、RabbitMQ、ZeroMQ 等)。我认为启用 J2EE 的服务器也提供了这样的支持。
关于这个话题,我不明白的是,真正的软件是如何使用这些结构的。我的意思是通常交换什么样的消息?字符串?二进制数据?
如果我理解正确的话,可以配置传输协议(protocol),但应用程序数据格式通常是什么?
这是一种新的交流方式吗? SOAP WS 或 REST WS 或 RPC 等每个都有不同的应用程序消息格式?

最佳答案

消息队列通常用于应用程序集成。在企业中通常用于实现ESB , 但现在有使用类似模式的较小的应用程序系统。

关于传输的数据 - 通常是 XML 消息,但实际上取决于应用程序和 MQ 软件 - 其中一些能够处理二进制消息,一些则不能。

例如,假设您有两个需要数据交换的应用程序。如果您使用某种消息传递软件(例如 ActiveMQ)集成它们,那么它会给您带来一些开箱即用的好处,例如路由、容错、平衡等。 您可以直接使用 MQ 集成您的应用程序,但 ESB 通常 使您能够使用 Web 服务:应用程序只调用 ESB 的 ws,对底层架构一无所知。 MQ 和 ESB 还为您提供了一定程度的抽象:只要保留数据交换接口(interface),您就可以在绝对透明的系统中切换您的应用程序。

关于java - 消息队列系统通常交换什么样的消息格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604977/

相关文章:

java - 在计数器模式下使用 AES 生成一次性 key

java - 在构建文档时验证 java 中的 xml

java - 如何将字符串中的交替字符变为大写?

java - 使用枚举的策略模式。需要一个简单的Java示例

使用 HttpHandler 进行对象序列化时出现 java.io.EOFException 错误

java - 复杂的 Mongo DB 查询 - 子文档

java - 在 Java 中映射多对多关联的最佳方法

java - 使用 websphere liberty 应用程序从经典 websphere 应用程序访问远程 ejb

c++ - 使用重叠 IO 获取发件人的 IP 地址

C 客户端-服务器应用程序和 Linux 上的电池节省