rabbitmq.channel方法介绍

RabbitMQ架构篇 - Channel 本文解析RabbitMQ的Channel接口的exchangeDeclare、queueDeclare、queueBind方法以及AMQChannel的伪rpc方法。 阅读详情

rabbitmq.channel参数详解

channel.exchangeDeclare():使用fanout类型创建的交换机

1、type:有direct、fanout、topic三种
2、durable:true、false true:服务器重启会保留下来Exchange。警告:仅设置此选项,不代表消息持久化。即不保证重启后消息还在
3、autoDelete:true、false.true:当已经没有消费者时,服务器是否可以删除该Exchange

Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete,
                                       Map<String, Object> arguments) throws IOException;

chanel.basicQos(): 同一时刻服务器发多少条消息给消费者

1、prefetchSize:0 
2、prefetchCount:会告诉RabbitMQ不要同时给一个消费者推送多于N个消息,即一旦有N个消息还没有ack,则该consumer将block掉,直到有消息ack
3、global:true\false 是否将上面设置应用于channel,简单点说,就是上面限制是channel级别的还是consumer级别

void basicQos(int prefetchSize, int prefetchCount, boolean global) throws IOException;

channel.basicPublish(): 向server发布一条消息

1、routingKey:路由键,#匹配0个或多个单词,*匹配一个单词,在topic exchange做消息转发用
2、mandatory:true:如果exchange根据自身类型和消息routeKey无法找到一个符合条件的queue,那么会调用basic.return方法将消息返还给生产者。false:出现上述情形broker会直接将消息扔掉
3、mmediate:true:如果exchange在将消息route到queue(s)时发现对应的queue上没有消费者,那么这条消息不会放入队列中。当与消息routeKey关联的所有queue(一个或多个)都没有消费者时,该消息会通过basic.return方法返还给生产者。
4、BasicProperties :需要注意的是BasicProperties.deliveryMode,0:不持久化 1:持久化 这里指的是消息的持久化,配合channel(durable=true),queue(durable)可以实现,即使服务器宕机,消息仍然保留
简单来说:mandatory标志告诉服务器至少将该消息route到一个队列中,否则将消息返还给生产者;immediate标志告诉服务器如果该消息关联的queue上有消费者,则马上将消息投递给它,如果所有queue都没有消费者,直接把消息返还给生产者,不用将消息入队列等待消费者了。

void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body)
            throws IOException;

channel.basicAck(): 消息处理完成,手动确认提交

1、deliveryTag:该消息的index
2、multiple:是否批量.true:将一次性ack所有小于deliveryTag的消息。

void basicAck(long deliveryTag, boolean multiple) throws IOException;

channel.basicConsume(): 消息消费完成确认

1、autoAck:是否自动ack,如果不自动ack,需要使用channel.ack、channel.nack、2、channel.basicReject 进行消息应答

String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException;

channel.queueDeclare(): 声明一个队列

1、durable:true、false true:在服务器重启时,能够存活
2、exclusive :是否为当前连接的专用队列,在连接断开后,会自动删除该队列,生产环境中应该很少用到吧。
3、autodelete:当没有任何消费者使用时,自动删除该队列。

Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,
                                 Map<String, Object> arguments) throws IOException;

channel.queueBind(): 将队列跟交换器进行绑定

1、queue:队列名称
2、exchange:交换机名称
3、routingKey:队列跟交换机绑定的键值
channel.queueBind(queueName, EXCHANGE_NAME, "black");
RabbitMQ 通道(Channel)详解:方法使用、消息确认与拒绝 阅读详情

相关推荐

golang rabbitMQ 生产者复用channel以及生产者组分发策略

项目初始化构建时可以自定义选择生产者开启多个connection,每个connection可以启动多少个channel【都是全局复用的】,因为rabbitMQ所有的命令都是基本都是通过channel去操作完成的,所以这个channel很重要,也是我们想要复用的重点。在网络编程中我们知道tcp连接的创建、交互、销毁等相关操作的"代价"都是很高的,所以就要去实现如何复用这些连接,并要做到高效并可靠。引用的是rabbitMQ官方示例的库。

Enjun97的博客 3792

[RabbitMQ]基础概念——信道channel

前言: 最近跟着公司一起做项目重构,也有项目用到了MQ。其中用到了死信队列和延迟队列。 先整理一下路由的基础知识,不能只跟着实战,堆代码。 1.channel信道 信道是生产消费者与rabbit通信的渠道,生产者publish或者消费者消费一个队列都是需要通过信道来通信的。 信道是建立在TCP上面的虚拟链接,也就是rabbitMQ在一个TCP上面建立成百上千的信道来达到多个线程处理。 ...

新一的技术笔记 1万+

rabbitmq channel接口常用方法详解

Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments) throws IOException;解释: 方法作用: 声明一个队列

浪丶荡 9803

RabbitMq基础篇-09-channel接口常用几种参数详解

为了保证消息从队列可靠地达到消费者, RabbitMQ 提供了消息确认机制( message acknowledgement), 消费者在订阅队列时,可以指定autoAck参数,当autoAck 等于false时,RabbitMQ会等待消费者显式地回复确认信号后才从内存(或者磁盘)中移去消息(实质上是先打上删除标记,之后再删除)。当autoAck 等于true时,RabbitMQ 会自动把发送出去的消息置为确认, 然后从内存(或者磁盘)中删除,而不管消费者是否真正地消费到了这些消息。

Alan0517 1万+

RabbitMQ Channel方法参数详解

这些是RabbitMQ Channel方法的一些常用参数和示例代码。通过使用这些参数,您可以在RabbitMQ中创建队列、交换器,绑定队列到交换器,发送和接收消息。根据您的具体需求,可以调整参数的值以实现所需的功能。RabbitMQ是一个功能强大的消息中间件,用于在应用程序之间传递消息。在RabbitMQ中,Channel是与消息代理进行通信的主要接口。通过Channel,应用程序可以创建、发送和接收消息。本文将详细介绍RabbitMQ Channel方法的各种参数,并提供相应的源代码示例。

VksgShapes的博客 863

Channel shutdown: channel error; protocol method: #method channel.close (rep

文章目录Channel shutdown: channel error; protocol method: #methodChannel shutdown: channel error; protocol method: #method<channel.close>(rep 1、启动springboot 应用报错 Channel shutdown: channel error; pr...

简简单单Onlinezuozuo 5万+

rabbitmq之channel类方法说明

// Copyright (c) 2007-Present Pivotal Software, Inc. All rights reserved. // // This software, the RabbitMQ Java client library, is triple-licensed under the // Mozilla Public License 1.1 ("MPL"), t...

Eflyings的博客 1091

ADS 使用调整器动态调参教程(Tuning)

ADS动态调参教程

weixin_42845306的博客 1万+

RabbitMQ中方法channel.basicAck的使用说明

通过设置multiple参数,可以实现批量确认消息的功能。如果消费者处理消息的速度很快,可以将其设置为true,一次性确认多条消息,提高处理效率。但如果消费者处理消息的速度比较慢,可能会导致消息堆积,造成内存占用过高。因此,在实际使用中需要根据实际情况来确定是否需要批量确认消息。在RabbitMQ中,channel.basicAck方法用于确认已经接收并处理了消息。

liqinglonguo的博客 4832

新手自己动手设置3D-slicer中文版(超详细图文)

3DSlicer是一个开源的免费软件,用于医学图像分析(包括配准和交互式分割)和可视化(包括3D渲染)以及用于图像引导治疗研究的软件平台。复制qm文件,粘贴于3D-slicer文件相关文件夹内,\bin\translations\。打开3dslicer,edit菜单下Application Settings,支持的操作系统:Linux,Mac OSX和Windows。本人英语太差,所以第一反应就是中文版,官网无中文版下载,下载后不能直接使用,必须要发布成qm文件;qm文件已经生成,位于ts文件同一文件夹。

linjianping513的博客 9854

ADS2023仿真变容二极管特性

仿真S-Param仿真控件,设置为Single Point,将频率设置为1MHz,同时勾选Z-parameters,取消S-parameters,从元件库中选择元器件搭建原理图,并根据器件spice提供的相关参数,对原理图中器件参数进行修改,修改完成的电路图如下图所示。添加var控件和MeasEqn控件,相关设置如图所示,Ct为变容管的电容值,Q0为其品质因数。因此,对变容二极管的模型仿真结果是可以信赖的。将其解压,在spice文件夹中,可以找到我们想要的器件参数,和仿真简要电路图。

weixin_45811090的博客 1万+

rabbitmq-channel方法介绍

// 声明一个队列 -// queue 队列名称 // durable 为true时server重启队列不会消失 (是否持久化) // exclusive 队列是否是独占的,如果为true只能被一个connection使用,其他连接建立时会抛出异常 // autoDelete 当没有任何消费者使用时,自动删除该队列 channel...

不怂,不弱,不退缩,厚积薄发 1215

[STC32G144K246入门第三步]驱动串口收发(接收不定长数据)

本文介绍了STC32G144K246单片机的串口功能配置与使用。该芯片具有8组独立USART,支持异步/同步模式,各串口可独立配置波特率并支持DMA传输。重点讲解了串口寄存器配置方法,包括引脚设置、波特率计算和中断处理。特别指出RX引脚需配置为开漏或准双向口以避免接收乱码。还介绍了通过定时器实现不定长数据接收的技术方案,并提供了完整的初始化代码和中断处理函数示例。文中包含串口时序图、寄存器配置表等实用参考信息,适合嵌入式开发者快速上手多串口应用开发。

sinat_58149788的博客 196

rabbitmq channel对象的方法

channel.exchangeDeclare() channel.ExchangeDeclare(string exchange: "cjlTest",string type: "direct/topic/header/fanout",bool durable: true); 参数解析: exchange:名称 type:有fanout、direct、topic、header;选择合...

诚的博客 1489

ChatGPT搭配Claude 4写文献综述效果出奇的好!四步法直接写出逻辑清晰、层次分明的文献综述(附复制即用专业提示词)

请梳理【研究领域】中核心理论的发展演进过程,包括每一阶段理论的核心观点、提出背景与推动力,并指出理论演化中的关键节点或范式转变。请根据以下文献摘要内容,帮助我梳理该主题的研究趋势,包括:常见研究视角、研究方法的演变、研究对象的变化方向等。请根据以下研究空白与我已有的研究基础,帮我生成一个清晰的研究定位,包括:研究主题、研究对象、方法路径和理论框架。先要明确这个研究领域中一个主导或热门的理论,比如社会支持理论、认知负荷理论等,强调这个理论内部的不一致性、适用性争议,通过交代这⼀争议的背景,引发读者兴趣。

智能AI让学术科研更容易 569

Opus Clip AI技术浅析(一)

Opus Clip AI 是一款由Opus公司推出的AI视频剪辑工具,旨在通过人工智能技术简化视频编辑过程,帮助用户快速从长视频中提取精彩片段,并生成适合社交媒体分享的短视频。

m0_75253143的博客 2152

RabbitMQ - Channel 类主要方法参数详解

Channel 类的方法,如 exchangeDeclare(...)、queueDeclare(...)等方法,均采用了重载的方式。 channel.exchangeDeclare(…) /** * Declare an exchange, via an interface that allows the complete set of * arguments. * @see com.rabbitmq.client.AMQP.Exchange.Declare

virgil 826

GB28181 —— 3、C++编写GB28181设备端,完成注册、注销、保活心跳、响应查询目录等功能(附源码)

GB28181 —— Win10下编写GB28181设备端,完成注册、注销、保活心跳、响应查询目录等功能(附源码)

1308

channel rabbitmq 配置_rabbitmq channel方法参数详解

1 Queue.Declareok queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map arguments)queue:routingKey,即队列的名称durable:true/false,是否支持持久化exclusive:true/false,排他队列,表示是否只能被一个消...

weixin_30531679的博客 1591

EtherCAT主站SOEM -- 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 1997

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

rabbitmq channel方法参数详解

1 Queue.Declareok queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)   queue:routingKey,即队列的名称   durable:true/false,是否支持持久化   e...

weixin_30660027的博客 424

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RabbitMQ从零开始学(二)通信模型之HelloWorld型—channel方法参数详解

导包,编写工具类,编写生产者,编写消费者, 测试。 channel参数详解 channel.basicPublish() channel.queueDeclare() channel.basicAck() channel.basicConsume() 含义:生产者将消息发送到队列,然后队列将这个消息发送给消费者 代码实现

孔明的博客 910

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RabbitMQ中客户端的Channel类里各方法释义

// The contents of this file are subject to the Mozilla Public License // Version 1.1 (the "License"); you may not use this file except in // compliance with the License. You may obtain a ...

dayou7738的博客 1275

Springboot集合RabbitMQ运行过程中报错:Channel shutdown: channel error; protocol method解决方法

产生问题背景: 在消息的消费处理逻辑中有手动确认消息的操作: 问题分析: 1、默认情况下 spring-boot-data-amqp 是自动ACK机制,就意味着 MQ 会在消息发送完毕后,自动帮我们去ACK,然后删除消息的信息。 2、消息确认的类型: ...

d20062056的博客 7230
上一篇: java 自定义注解方式 + spring AOP + ExpiringMap 实现限制接口请求次数
下一篇: MySQL以逗号隔开的字符串查询方式整理
Java_ESS
博客等级 码龄7年 97粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值