《RabbitMQ篇》消费者轮询消费消息
当有多个消费者都在同一个队列中拿取消息时,会轮询从队列中拿取消息消费。
RabbitMQUtil类为工具类,获取Channel。
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;public class RabbitMQUtil {public static Channel getChannel() throws Exception {//得到工厂ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");factory.setUsername("guest");factory.setPassword("guest");//生成连接Connection connection = factory.newConnection();//获取信道return connection.createChannel();}
}
- 创建一个生产者,并启动
import com.rabbitmq.client.Channel;import java.util.Scanner;public class Producer {private final static String QUEUE_NAME = "hello";public static void main(String[] args) throws Exception {Channel channel = RabbitMQUtil.getChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String message = sc.next();channel.basicPublish("", QUEUE_NAME, null, message.getBytes());}}
}
- 创建两个消费者,并启动
import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;public class Consumer1 {private final static String QUEUE_NAME = "hello";public static void main(String[] args) throws Exception {Channel channel = RabbitMQUtil.getChannel();DeliverCallback deliverCallback = (consumerTag, message) -> {System.out.println("接收到信息:" + new String(message.getBody()));};CancelCallback cancelCallback = consumerTag -> {System.out.println("消息消费被中断");};System.out.println("C1消费者启动等待消费......");channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);}
}
import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;public class Consumer2 {private final static String QUEUE_NAME = "hello";public static void main(String[] args) throws Exception {Channel channel = RabbitMQUtil.getChannel();DeliverCallback deliverCallback = (consumerTag, message) -> {System.out.println("接收到信息:" + new String(message.getBody()));};CancelCallback cancelCallback = consumerTag -> {System.out.println("消息消费被中断");};System.out.println("C2消费者启动等待消费......");channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);}
}
- 运行结果图如下。可以看到两个消费者轮流从队列中拿取消息消费。

相关文章:
《RabbitMQ篇》消费者轮询消费消息
当有多个消费者都在同一个队列中拿取消息时,会轮询从队列中拿取消息消费。 RabbitMQUtil类为工具类,获取Channel。 import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;public…...
mongodb导入导出
分享自己mongodb导出导入经验。将一个数据库数据备份,导入到另一个数据库。 mongodb的导入导出工具有版本限制,过旧的版本是不支持导入导出的。mongodb 4.2以后版本支持比较好。mongodb 3.4以前完全不支持。 1,下载 mongodb的导入导出需要自…...
判断 HTTP/2 多路复用是否在服务器上实现
要判断 HTTP/2 多路复用是否在服务器上实现,并确保浏览器正在使用多路复用来加载资源,您可以使用以下几种方法进行验证: 1. 使用浏览器开发者工具 大多数现代浏览器(如 Chrome、Firefox、Edge)提供了开发者工具&…...
(已解决)vscode使用launch.json进行debug调试报错:Couldn‘t spawn debuggee:embedded null byte
Launch.json 进行debug时报错: 主要原因是vscode全局配置被整乱了,下面是个人解决的方法,以供参考. 在网上也寻找过解决方法,有的说是,在launch.json中,添加一行"python":"/root/miniconda3…...
windows桌面便签小工具,便签软件哪个好用?
我们都知道,Windows桌面便签小工具可以极大地提高工作效率,帮助我们快速记录重要信息或待办事项。至于便签软件哪个好用,在选择便签软件时,我们可以从以下几个方面来考量:易用性、功能性、安全性以及是否支持跨平台同步…...
【Linux】C文件头文件数裁剪前58644个,裁剪后9373个
裁剪后可以访问网络和从Windows共享的文件夹: 纯C代码编译(不包含打包)时长比较:未裁剪前:大约5.5小时,裁剪后大约35分钟。 C文件和头文件数量比较(目录里边实际还有tools和scripts目录…...
线性自抗扰控制(LADRC)系统算法框图
非线性ADRC(NLADRC)详细算法框图和源代码请参考专栏系列文章,常用链接如下: 1、NLADRC自抗扰控制 NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-CSDN博客文章浏览阅读1.6k次,点赞2次,收藏7次。本文介绍了如何将ADRC自抗扰控制算法从Simulink…...
基于SSM的微信小程序博客管理系统(博客1)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM的微信小程序博客管理系统实现与设计,实现了管理员与用户,管理员实现了用户管理、博文信息管理、博文类型管理、我的博文管理、个人名片分享管理、签到管理…...
text-behind-image:轻松创建文字背景图片设计
在网页设计中,视觉效果往往能够极大地提升用户体验。其中,将文字置于图片背后是一种常见的设计手法,可以增加页面的层次感和视觉吸引力。今天,我将向你介绍一个名为 text-behind-image 的JavaScript库,它可以让你轻松实…...
前端reactvue3——实现滚动到底加载数据
文章目录 ⭐前言⭐react 实现滚动加载⭐vue3 实现滚动加载⭐总结⭐结束 ⭐前言 大家好,我是yma16,本文分享 前端react&vue3——实现滚动加载(到底部加载) scrollTop 属性 一个双精度浮点值,表示元素当前从原点垂直…...
qt 安装提示 无法定位程序输入点 systemparametersinfofordpi于动态链接库
安装 qt-creator-opensource-windows-x86_64-14.0.2.exe 有以下提示 无法定位程序输入点 systemparametersinfofordpi于动态链接库 路径 qt-creator-opensource-windows-x86_64-14.0.2.exe 更新系统 平台win10 很久之前的版本,关闭了更新,更新到 Win…...
算法笔记day04
目录 1. 在字符串中找出连续最长的数字串 2.岛屿数量 3.拼三角 1. 在字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 (nowcoder.com) 算法思路: 这是一道简单的双指针题目,首先用i遍历数组,当遍历到数字的时…...
实战篇:(四)Vue2 + Three.js 创建可交互的360度全景视图,可控制旋转、缩放完整代码
Vue2 Three.js 创建可交互的360度全景视图,可控制旋转、缩放 引言 在现代网页开发中,三维图形技术已经成为提升用户体验的重要工具。本文将展示如何使用 Three.js 创建一个简单的可交互360度全景视图。通过这一项目,你将能够学习到基本的场…...
【load_file读文件】
一、文件操作基础 show 先试试 show variables;发现显示了三百多行的系统变量: 这是数据库的目录: mysql有多种编码方式,有数据库编码、连接时的编码、还有客户端的编码: 这里还有一个日志路径,这个日志是需要手动打开的&#…...
JavaScript object(2)
这样的话,就变成只读了。...
Acwing 排序
1.快速排序 主要思想:基于分治思想。通过选择一个基准元素,将数组分为两部分,左边部分元素都小于等于基准,右边部分元素都大于等于基准。然后对这两部分分别递归地进行排序。 分区逻辑:双指针算法 左指针i从左往右找…...
分布式环境下验证码登录的技术实现
分布式环境下验证码登录的技术实现 在分布式系统中,实现验证码登录是一个复杂但至关重要的任务。它不仅能防止暴力破解和自动化攻击,还能提高系统的安全性和用户体验。本文将详细介绍在分布式环境下如何实现验证码登录,涵盖验证码的生成、存…...
数据结构-5.9.树的存储结构
一.树的逻辑结构: 二.双亲表示法(顺序存储): 1.树中除了根结点外每一颗树中的任意一个结点都只有一个父结点(双亲结点); 2.结点包括结点数据和指针; 3.上述图片中右边的顺序存储解析:比如A结点左边的0,就…...
【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门
目录 1、线程初识 1.1线程的概念 1.2.关于线程和进程的进一步理解 1.3.线程的设计理念 1.4.进程vs线程(图解) 1.5地址空间的第四谈 2.线程的控制: 2.1.关于线程控制的前置知识 2.2创建线程的系统调用: 这个几号手册具体…...
uniapp学习(005-2 详解Part.2)
零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第41p-第p47的内容 文章目录 mainifest.json文件配置获取微信小程序appid注册微信小程序微信小程序控制台图形界…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
