Spring AMQP 教程

 

Spring AMQP

 

我们今天将研究Spring AMQP。

目录[ 隐藏 ]

  • 1 Spring AMQP
    • 1.1什么是AMQP?
    • 1.2为什么我们需要AMQP?
    • 1.3 JMS和AMQP之间的区别
    • 1.4 Spring AMQP如何工作?
    • 1.5 Spring AMQP模块

Spring AMQP

Spring AMQP是基于AMQP的消息传递解决方案的Spring实现。Spring AMQP为我们提供了一个“模板”,作为发送和接收消息的高级抽象。我们将在今年春季AMQP中研究以下主题。教程。

  1. 什么是AMQP?
  2. 为什么我们需要AMQP?
  3. JMS和AMQP之间的区别
  4. Spring AMQP如何运作?
  5. Spring AMQP模块

什么是AMQP?

我们之前的帖子中已经讨论了一些JMS概念和示例。在这篇文章中,我们将讨论AMQP协议和Spring AMQP消息传递。

AMQP代表高级消息队列协议。AMQP是用于实现MOM(面向消息的中间件)的开放标准协议。

为什么我们需要AMQP?

我们有JMS API来开发企业消息系统,但为什么我们需要另一个Messaging标准。

JMS API的主要缺点或限制是互操作性,这意味着我们可以开发仅在基于Java的应用程序中工作的消息传递系统。它不支持其他语言。

 

AMQP解决了JMS API问题。AMQP的主要优点是它支持异构平台和消息代理之间的互操作性。我们可以用任何语言(Java,C ++,C#,Ruby等)和任何操作系统开发我们的Messaging系统; 他们仍然可以使用基于AMQP的消息代理来相互通信。

JMS和AMQP之间的区别

在本节中,我们将讨论JMS和AMQP协议之间的区别。

JMS Application适用于任何OS环境,但它仅支持Java平台。如果我们想使用JMS API开发以下系统架构,那么所有这些系统都应该只使用Java语言开发。

但是如果我们使用AMQP标准来开发相同的系统,那么我们可以使用任何语言开发这些系统,这意味着System-1(JAVA),System-2(C#),System-3(Ruby)和System-4(C ++) 。

Spring AMQP 教程_第1张图片

JMS API仅适用于Java平台,但AMQP支持许多技术。

正如我们已经讨论过的,JMS API支持两种消息传递模型:P2P(点对点)模型和PUB / SUB(发布者/订阅者)模型。

AMQP支持五种不同的Messaging模型(或Exchange类型)

JMS消息分为3个部分:标题,属性和正文。
AMQP消息分为4个部分:标题,属性,正文和页脚。

JMS API支持5种类型的消息作为Body部分的一部分,但AMQP仅支持一种类型的消息 - 二进制(字节)消息。

  1. 互通性
  2. 消息模型
    1. 直接交流
    2. 扇出交换
    3. 主题交流
    4. 标题交换
    5. 系统交换
  3. 消息结构
  4. 消息类型

Spring AMQP如何运作?

Spring Framework提供Spring AMQP API,将AMQP消息代理与Spring应用程序集成,以开发企业消息系统。

在AMQP Messaging系统中,Message Publisher将消息发送到Exchange。Publisher不知道哪个队列配置到此Exchange以及哪个Consumer与此队列关联。

在配置Exchange时,我们将通过指定一些路由密钥将其映射到一个或多个队列。

AMQP Consumer连接到Queue并使用某些路由密钥监听消息。

当Publisher将邮件发送到Exchange时,Exchange使用此路由密钥并将这些邮件发送到关联的队列。当队列接收消息时,关联的消费者会自动接收这些消息。

Spring AMQP 教程_第2张图片

例如,我们通过遵循上述架构实现了AMQP消息系统。

如果Publisher发送Route key = 1的消息,则此消息将路由到Queue1,然后路由到Consumer1。

如果Publisher发送路由密钥= 2的消息,则此消息将路由到Queue2,然后路由到Consumer2。

注意:最流行的AMQP协议实现的消息代理或JMS服务器是:

  1. Apache Active MQ服务器
  2. Spring Rabbit MQ服务器

Spring AMQP模块

Spring Framework提供了两组API来处理AMQP协议服务器。Spring AMQP项目位于以下网站:

https://spring.io/projects/spring-amqp

Spring RabbitMQ AMQP API用于使用Spring Rabbit MQ服务器实现消息传递应用程序。此API由两个Spring模块开发:

此API用于使用Apache Active MQ服务器实现消息传递应用程序。此API使用带有ActiveMQ API的Spring AMQP抽象模块:

  1. Spring RabbitMQ AMQP API

    它是AMQP协议实现的基础抽象。

    它是RabbitMQ实现。

    • 弹簧AMQP:
    • 春兔:
  2. Spring ActiveMQ AMQP API

    它是AMQP协议实现的基础抽象。

    它是ActiveMQ实现。

    • 弹簧AMQP:
    • ActiveMQ的弹簧:

注意:

  • Spring AMQP和Spring RabbitMQ模块都来自Pivotal Team(Spring Framework)。RabbitMQ服务器也来自Pivotal Team。
  • ActiveMQ Server来自Apache Software Foundation。Apache ActiveMQ发布了一个支持Spring Framework的API activemq-spring(它不是来自Pivotal Team)。

这就是Spring AMQP Messaging的全部内容。

进一步阅读:Spring RabbitMQ,Apache ActiveMQ

 

你可能感兴趣的:(Spring)