【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的绑定关系-可选

相关推荐
陈平安Java and C14 小时前
RabbitMQ高级特性2
rabbitmq
程序员 小柴18 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
RainbowSea2 天前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea2 天前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
ChinaRainbowSea2 天前
1. 初始 RabbitMQ 消息队列
java·中间件·rabbitmq·java-rabbitmq
千层冷面2 天前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby
ChinaRainbowSea2 天前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
hycccccch2 天前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
陈平安Java and C3 天前
RabbitMQ简单介绍和安装
rabbitmq
陈平安Java and C3 天前
RabbitMQ应用2
rabbitmq