首页 > 其他分享 >RabbitMq:简单的生产者代码。(包含QueueDeclare声明队列参数)

RabbitMq:简单的生产者代码。(包含QueueDeclare声明队列参数)

时间:2023-02-03 23:33:34浏览次数:40  
标签:name 队列 max RabbitMq 消息 conn QueueDeclare

ConnectionFactory conn = new ConnectionFactory();
conn.setVirtualHost("/");
conn.setPort(5672);
conn.setHost(IP);//IP是发送消息的IP地址
conn.setUsername("guest1");
conn.setPassword("guest1");
Connection connection = conn.newConnection();
Channel channel = connection.createChannel();

 

Map<String, Object> args = new HashMap<String, Object>();
args.put("x-max-length", 20000);


channel.queueDeclare("MESSAGE_QUEUE_TEST", true, false, false, args);

//QueueDeclare声明一个队列,有则不动,无则创建

//QueueDeclare(String name, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)

//

参数介绍:
1、name: 队列的名称;
2、actualName: 队列的真实名称,默认用name参数,如果name为空,则根据规则生成一个;
3、durable: 是否持久化;
4、exclusive: 是否独享、排外的;
5、autoDelete: 是否自动删除;
6、arguments:队列的其他属性参数,有如下可选项,可参看图2的arguments:
(1)x-message-ttl:消息的过期时间,单位:毫秒;
(2)x-expires:队列过期时间,队列在多长时间未被访问将被删除,单位:毫秒;
(3)x-max-length:队列最大长度,超过该最大值,则将从队列头部开始删除消息;
(4)x-max-length-bytes:队列消息内容占用最大空间,受限于内存大小,超过该阈值则从队列头部开始删除消息;
(5)x-overflow:设置队列溢出行为。这决定了当达到队列的最大长度时消息会发生什么。有效值是drop-head、reject-publish或reject-publish-dlx。仲裁队列类型仅支持drop-head;
(6)x-dead-letter-exchange:死信交换器名称,过期或被删除(因队列长度超长或因空间超出阈值)的消息可指定发送到该交换器中;
(7)x-dead-letter-routing-key:死信消息路由键,在消息发送到死信交换器时会使用该路由键,如果不设置,则使用消息的原来的路由键值
(8)x-single-active-consumer:表示队列是否是单一活动消费者,true时,注册的消费组内只有一个消费者消费消息,其他被忽略,false时消息循环分发给所有消费者(默认false)
(9)x-max-priority:队列要支持的最大优先级数;如果未设置,队列将不支持消息优先级;
(10)x-queue-mode(Lazy mode):将队列设置为延迟模式,在磁盘上保留尽可能多的消息,以减少RAM的使用;如果未设置,队列将保留内存缓存以尽可能快地传递消息;
(11)x-queue-master-locator:在集群模式下设置镜像队列的主节点信息。

//
channel.basicPublish("", "CONTRACT_MESSAGE_QUEUE_TEST", MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBody());

connection.close();

标签:name,队列,max,RabbitMq,消息,conn,QueueDeclare
From: https://www.cnblogs.com/DDDJ/p/17090713.html

相关文章

  • 57-Zookeeper集群和kafka消息队列集群
    MartinFowler发现所有成功的微服务都遵循了通用的模式-MonolithFirst(单体优先):几乎所有成功的微服务故事,都是从一个变得太大而被分解的单体开始的。几乎所有我听说过的从......
  • 【kafka 消息队列&基础命令】
    一、kafka的定义传统定义:kafka是一个分布式的基于发布/订阅模式的消息队列发布订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者......
  • 高性能内存队列Disruptor
    1背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系......
  • 双端队列
    题目描述:达达现在碰到了一个棘手的问题,有N个整数需要排序。达达手头能用的工具就是若干个双端队列。她从1到N需要依次处理这N个数,对于每个数,达达能做以下两件事:1.新建一个双......
  • springcloud:安装rabbitmq并配置延迟队列插件
    0.引言本期主要讲解如何利用docker快速安装rabbitmq并且配置延迟队列插件1.docker安装1.1安装rabbitmq1、下载镜像dockerpullrabbitmq2、安装镜像dockerrun-d--host......
  • 栈和队列
    栈和队列都是通过动态集合来存储数据,在栈和队列中添加和删除数据都是预先设定的。在栈(Stack)中,被删除的元素是最近添加的元素,所以栈的实现方式是后进先出(Last-in,First-out......
  • springboot连接rabbitmq报错:Failed to check/redeclare auto-delete queue(s).
    问题springboot项目使用​​spring-boot-starter-amqp​​连接rabbitmq时出现报错:Failedtocheck/redeclareauto-deletequeue(s).思路这类问题是因为没有连接上rabbitmq......
  • 决战圣地玛丽乔亚Day06-- MQ消息队列
    MQ消息队列。目前市面上流行的MQ有:RocketMQ、kafka、RabbitMQ、ActiveMQ比较一下这几个消息队列一般消息队列的作用和使用场景是:1.解耦。(本来A要调很多接口,现在A直接把......
  • greenplum资源队列
     greenplum的资源队列 1.资源队列的基本原理   资源队列存在的目的是为了防止多个会话同时执行,争夺系统资源和避免造成资源耗尽,如Memory、CPU、磁盘I/O这三种资源......
  • RabbitMQ使用
    记录学习【江南一点雨】的Rabbitmq笔记1.概览1.1通信协议1.1.1JMS(JavaMessageService)类似于JDBC,不同于JDBC,JMS是Javaee的消息服务接口。1.1.1.1JMS模型两......