返回介绍

17.3 使用 AMQP 实现消息功能

发布于 2024-08-17 00:45:49 字数 727 浏览 0 评论 0 收藏 0

你可能会疑惑为什么还需要另外一个消息规范。难道JMS还不够好吗?AMQP提供了哪些JMS所不具备的特性呢?

实际上,AMQP具有多项JMS所不具备的优势。首先,AMQP为消息定义了线路层(wire-level protocol)的协议,而JMS所定义的是API规范。JMS的API协议能够确保所有的实现都能通过通用的API来使用,但是并不能保证某个JMS实现所发送的消息能够被另外不同的JMS实现所使用。而AMQP的线路层协议规范了消息的格式,消息在生产者和消费者间传送的时候会遵循这个格式。这样AMQP在互相协作方面就要优于JMS——它不仅能跨不同的AMQP实现,还能跨语言和平台。[2]

相比JMS,AMQP另外一个明显的优势在于它具有更加灵活和透明的消息模型。使用JMS的话,只有两种消息模型可供选择:点对点和发布-订阅。这两种模型在AMQP当然都是可以实现的,但AMQP还能够让我们以其他的多种方式来发送消息,这是通过将消息的生产者与存放消息的队列解耦实现的。

Spring AMQP是Spring框架的扩展,它能够让我们在Spring应用中使用AMQP风格的消息。稍后可以看到,Spring AMQP提供了一个API,借助这个API,我们能够以非常类似于Spring JMS抽象的形式来使用AMQP。这意味着,我们在本章之前所学习的JMS内容能够帮助你理解如何使用Spring AMQP来发送和接收消息。

我们稍后就会介绍如何使用Spring AMQP,但是在深入学习如何在Spring中发送和接收消息之前,首先看一下到底是什么让AMQP如此引人关注。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文