【RabbitMQ基础编程模型】

文章目录

  • RabbitMQ基础编程模型
    • 基础编程模型
      • step1、首先创建连接,获取Channel
      • step2、声明Exchange-可选
      • step3、声明queue
      • step4、声明Exchange与Queue的绑定关系-可选

RabbitMQ基础编程模型

RabbitMQ的使用生态已经相当庞大,支持非常多的业务场景,同时也提供了非常多的客户端语言支持。

接下来我们只是通过Java语言来理解下要如何使用RabbitMQ。其他语言客户端可以参考示例与官方文件,

自行了解。

使用RabbitMQ提供的原生客户端API进行交互。这是使用RabbitMQ的基础。

基础编程模型

step1、首先创建连接,获取Channel

通常情况下,我们在一个客户端里都只是创建一个Channel就可以了,因为一个Channel只要不关闭,是

可以一直复用的。但是,如果你想要创建多个Channel,要注意一下Channel冲突的问题。

在创建channel时,可以在createChannel方法中传入一个分配的int参数channelNumber。这个

ChannelNumber就会作为Channel的唯一标识。而RabbitMQ防止ChannelNumber重复的方式是:如果对

应的Channel没有创建过,就会创建一个新的Channel。但是如果ChannelNumber已经创建过一个Channel

了,这时就会返回一个null。

step2、声明Exchange-可选

Exchange在消息收发过程中是一个可选的步骤,如果要使用就需要先进行声明。在声明Exchange时需要

注意,如果Broker上没有对应的Exchange,那么RabbitMQ会自动创建一个新的交换机。但是如果Broker上

已经有了这个Exchange,那么你声明时的这些参数需要与Broker上的保持一致。如果不一致就会报错。

声明Exchange时可以填入很多参数,对这些参数,你不用死记。实际上这些参数,包括最后的

arguments中可以传入哪些参数,在管理控制台中都有。关键属性在页面上都有解释。

step3、声明queue

与Exchange一样,如果你声明的Queue在Broker上不存

在,RabbitMQ会创建一个新的队列。但是如果Broker上已经有了这个队列,那么声明的属性必须和Broker

上的队列保持一致,否则也会报错。

声明Queue时,同样大部分的参数是可以从管理平台看到的。比如Durability,AutoDelete以及后面的

arguments参数可以传哪些参数,都可以从页面上看到。

step4、声明Exchange与Queue的绑定关系-可选

相关推荐
武子康3 小时前
Java-195 RabbitMQ BlockingQueue 手搓“消息中间件”雏形:生产者-消费者模型到企业级 MQ 差在哪
java·分布式·架构·消息队列·rabbitmq·java-rabbitmq·mq
武子康5 小时前
Java-196 消息队列选型:RabbitMQ vs RocketMQ vs Kafka
java·分布式·kafka·rabbitmq·rocketmq·java-rocketmq·java-rabbitmq
Wang's Blog17 小时前
RabbitMQ: 高并发外卖系统的微服务架构设计与工程实现
分布式·微服务·rabbitmq
Wang's Blog1 天前
RabbitMQ: 消息交换机制的核心原理与实践指南之基于 AMQP 协议的系统设计与工程实现
分布式·rabbitmq
深蓝电商API1 天前
爬虫+消息队列:RabbitMQ vs Kafka vs RocketMQ选型
爬虫·kafka·rabbitmq
Wang's Blog2 天前
RabbitMQ: 消息中间件技术选型
分布式·rabbitmq
、我是男生。2 天前
钨粉与小烛树蜡的熔融实验
rabbitmq
Percep_gan2 天前
Linux中安装rabbitmq,很详细
linux·运维·rabbitmq
Wang's Blog2 天前
RabbitMQ:消息可靠性保障之消费端 ACK 机制与限流策略解析
分布式·rabbitmq
武子康2 天前
Java-194 RabbitMQ 分布式通信怎么选:SOA/Dubbo、微服务 OpenFeign、同步重试与 MQ 异步可靠性落地
大数据·分布式·微服务·消息队列·rabbitmq·dubbo·异步