当前位置: 首页 > news >正文

RabbitMQ消息模型之Sample

Hello World

Hello World是官网给出的第一个模型,使用的交换机类型是直连direct,也是默认的交换机类型。

image-20220526143501213

在上图的模型中,有以下概念:

  • P:生产者,也就是要发送消息的程序
  • C:消费者:消息的接受者,会一直等待消息到来。
  • Queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。

此模型中只有一个生产者、一个队列、一个消费者。

这种模式适合于消息任务不是很密集,并且处理任务不算太过耗时的场景。消费者消费的速度赶得上生产者生产的速度。

创建生产者

public class MyProducer {@Testpublic void test() throws Exception {// 队列名称String queue = "xw_queue";String message = "Hello World -> ";// 创建工厂ConnectionFactory factory = new ConnectionFactory();factory.setVirtualHost("/");factory.setHost("xuewei.world");factory.setUsername("xuewei");factory.setPassword("123456");factory.setPort(5672);// 创建连接和通道Connection connection = factory.newConnection();Channel channel = connection.createChannel();for (int i = 0; i < 10; i++) {// 发布消息channel.basicPublish("xw_exchange", queue, null, (message + i).getBytes());}}
}

创建消费者

public class MyConsumer {public static void main(String[] args) throws Exception {// 队列名称String queue = "xw_queue";// 创建工厂ConnectionFactory factory = new ConnectionFactory();factory.setVirtualHost("/");factory.setHost("xuewei.world");factory.setUsername("xuewei");factory.setPassword("123456");factory.setPort(5672);// 创建连接和通道Connection connection = factory.newConnection();Channel channel = connection.createChannel();channel.queueDeclare(queue, true, false, false, null);channel.queueBind("", "xw_exchange", queue);channel.basicConsume(queue, true, new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("接收到消息: " + new String(body));// TODO 业务处理}});}
}

image-20220526154448671

相关文章:

RabbitMQ消息模型之Sample

Hello World Hello World是官网给出的第一个模型&#xff0c;使用的交换机类型是直连direct&#xff0c;也是默认的交换机类型。 在上图的模型中&#xff0c;有以下概念&#xff1a; P&#xff1a;生产者&#xff0c;也就是要发送消息的程序C&#xff1a;消费者&#xff1a;消…...

安全技术与防火墙

目录 安全技术 防火墙 按保护范围划分: 按实现方式划分: 按网络协议划分. 数据包 四表五链 规则链 默认包括5种规则链 规则表 默认包括4个规则表 四表 查询 格式&#xff1a; 规则 面试题 NFS常见故障解决方法 安全技术 入侵检测系统 (Intrusion Detection Sy…...

Windows系统搭建Appium 2 和 Appium Inspector 环境

前言 自 2022 年 1 月 1 日起&#xff0c;Appium 核心团队不再维护 Appium 1.x。官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x&#xff0c;需要 Appium 2 才能运行。 Appium 2是一个自动化移动应用程序的开源工具&#xff0c;它带来了以下重要改进&#xff1a;  …...

计算机应用基础_错题集_OutLook操作题_操作系统应用题_电子表格---网络教育统考工作笔记005

6、(说明:考生单击窗口下方的“打开[Outlook]应用程序”启动Outlook) 按以下要求保存草稿。 收件人:test_xiao_ming@163.com...

2023-11-26 LeetCode每日一题(统计子串中的唯一字符)

2023-11-26每日一题 一、题目编号 828. 统计子串中的唯一字符二、题目链接 点击跳转到题目位置 三、题目描述 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符&#xff0c;并返回唯一字符的个数。 例如&#xff1a;s “LEETCODE” &#xff0c;则其…...

HTML新手入门笔记整理:特殊符号

音标符 音标符 字符 Construct 输出结果 ̀、 a a à ́′ a a án ˆ a a â ̃&#xff5e; a a ã ̀̀、 O O Ò ́́′ O O Ó ˆ O O Ô ̃&#xff5e; O O Õ 字符 显示结果 描述 实体名称 实体编号 空格 <…...

物联网中基于信任的安全性调查研究:挑战与问题

A survey study on trust-based security in Internet of Things: Challenges and issues 文章目录 a b s t r a c t1. Introduction2. Related work3. IoT security from the one-stop dimension3.1. Output data related security3.1.1. Confidentiality3.1.2. Authenticity …...

tex2D使用学习

1. 背景&#xff1a; 项目中使用到了纹理进行插值的加速&#xff0c;因此记录一些自己在学习tex2D的一些过程 2. 代码&#xff1a; #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <assert.h> #include <stdio.h>…...

[iOS开发]UITableView的性能优化

一些基础的优化 &#xff08;一&#xff09;CPU 1. 用轻量级对象 比如用不到事件处理的地方&#xff0c;可以考虑使用 CALayer 取代 UIView CALayer * imageLayer [CALayer layer]; imageLayer.bounds CGRectMake(0,0,200,100); imageLayer.position CGPointMake(200,200…...

使用opencv实现图像滤波

1 图像滤波介绍 滤波是信号和图像处理中的基本任务之一&#xff0c;其旨在有选择地提取图像的某些特征&#xff0c;可以用于在给定应用程序的上下文中传达重要信息&#xff0c;例如&#xff0c;去除图像中的噪声、提取所需的视觉特征、图像重采样等。 1.1 图像滤波理论 图像…...

Swagger在php和java项目中的应用

Swagger在php和java项目中的应用 Swagger简介Swagger在java项目中的应用步骤常用注解 Swagger在php项目中的应用 Swagger简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以…...

java科学计数法表示数值

Background 大多数计算器及计算机程序用科学记数法显示非常大和非常小的结果&#xff1b;但很多时候&#xff0c;我们需要做一个统一&#xff0c;要么全部以科学计数法输出&#xff0c;要么就全部显示为普通计数。注意&#xff1a;这里对大于等于1的数据做了特殊处理&#xff0…...

基于C#实现树状数组

有一种数据结构是神奇的&#xff0c;神秘的&#xff0c;它展现了位运算与数组结合的神奇魅力&#xff0c;太牛逼的&#xff0c;它就是树状数组&#xff0c;这种数据结构不是神人是发现不了的。 一、概序 假如我现在有个需求&#xff0c;就是要频繁的求数组的前 n 项和&#x…...

Ubuntu Server 20.04.6下Anaconda3安装Pytorch

环境 Ubuntu 20.04.6 LTS Anaconda3-2023.09-0-Linux-x86_64.sh conda 23.7.4 Pytorch 1.11.0 安装 先创建一个工作环境&#xff0c;环境名叫lia&#xff1a; conda create -n lia python3.8环境的使用方法如下&#xff1a; conda activate lia # 激活环境 conda deactiv…...

C#-关于日志的功能扩展

目录 一、日志Sink(接收器) 二、Trace追踪实现日志 三、日志滚动 一、日志Sink(接收器) 安装NuGet包&#xff1a;Serilog Sink有很多种&#xff0c;这里介绍两种&#xff1a; Console接收器&#xff08;安装Serilog.Sinks.Console&#xff09;; File接收器&#xff08;安装…...

小程序禁止二次转发分享私密消息动态消息

第一种用法&#xff1a;私密消息 私密消息&#xff1a;运营人员分享小程序到个人或群之后&#xff0c;该消息只能在被分享者或被分享群内打开&#xff0c;不可以二次转发。 用途&#xff1a;主要用于不希望目标客群外的人员看到的分享信息&#xff0c;比如带有较高金额活动的…...

普乐蛙绵阳科博会一场VR科普航天科学盛宴科普知识

普乐蛙绵阳科普展&#xff1a;一场科学盛宴&#xff0c;点燃孩子探索欲望的火花! 普乐蛙绵阳科普展正在如火如荼地进行中&#xff0c;吸引了无数孩子和家长的热情参与。这场科普盛宴以独特的内外视角&#xff0c;让人们感受到科学的魅力&#xff0c;激发了孩子们对知识的渴望和…...

FFNPEG编译脚本

下面是一个ffmpeg编译脚本&#xff1a; #!/bin/bash set -eu -o pipefail set eu o pipefailFFMPEG_TAGn4.5-dev build_path$1 git_repo"https://github.com/FFmpeg/FFmpeg.git" cache_tool"" sysroot"" c_compiler"gcc" cxx_compile…...

Python期末复习题库(下)——“Python”

小雅兰期末加油冲冲冲&#xff01;&#xff01;&#xff01; 1. (单选题)下列关于文件打开模式的说法,错误的是( C )。 A. r代表以只读方式打开文件 B. w代表以只写方式打开文件 C. a代表以二进制形式打开文件 D. 模式中使用时,文件可读可写 2. (单选题)下列选项中,以追加…...

tauri中使用rust调用动态链接库例子(使用libloading库和libc库)

前言 当前采用桌面端框架位tauri&#xff0c;现在需要调用读卡器等硬件设备&#xff0c;硬件厂商提供了32位的动态链接库&#xff0c;现在记录例子&#xff0c;需要注意的点是使用libloading库和libc库&#xff0c; [package] name "yyt-device-rust" version &q…...

2026降AI率工具红黑榜:AI智能降重工具怎么选?用数据说话!

红榜优先选千笔AI、ThouPen、豆包&#xff0c;适配国内高校AI率检测规范&#xff1b;黑榜避开低质免费降AI工具、无正规检测对接、改写痕迹生硬的工具&#xff0c;优先按需求匹配三维模型&#xff08;降AI效果-学术合规性-使用成本&#xff09;。 一、红榜&#xff1a;10 款高分…...

【Appium 系列】第20节-测试项目结构设计 — 从脚本到工程

对应代码&#xff1a;配套代码/test/ 完整目录结构说明&#xff1a;本节讲解如何组织一个中大型 Appium 测试项目&#xff0c;从目录结构到文件职责&#xff0c;从脚本到工程的演进。这节讲什么测试项目从小到大会经历三个阶段&#xff1a;阶段 1&#xff1a;脚本阶段test_logi…...

安卓截屏限制FLAG_SECURE原理与MT管理器绕过实战

1. 截屏限制不是“锁”&#xff0c;而是“提示灯”——先破除一个普遍误解 很多人一看到“App禁止截屏”&#xff0c;第一反应是“这App在防我”&#xff0c;继而联想到银行类App、考试系统、视频平台的“安全策略”&#xff0c;甚至下意识觉得背后有某种“硬隔离”或“内核级防…...

DeepSeek / Qwen 大模型在昇腾上的推理优化实战

前言 把DeepSeek-V3和Qwen2.5-72B部署到昇腾910B集群上。客户说"GPU上跑得好好的&#xff0c;换昇腾应该也行吧"。结果第一天就被砸懵——同样的模型、同样的batch&#xff0c;昇腾上吞吐只有GPU的60%。不是算力不够&#xff0c;是我根本没搞清楚CANN的优化逻辑和CUD…...

Honey Select 2终极增强补丁:5分钟解锁完整汉化与去码功能

Honey Select 2终极增强补丁&#xff1a;5分钟解锁完整汉化与去码功能 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是《Honey Select 2》游戏的…...

PDF补丁丁终极指南:5分钟学会PDF元数据精准修改技巧

PDF补丁丁终极指南&#xff1a;5分钟学会PDF元数据精准修改技巧 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: https://gitc…...

测试工程师用 Claude :它修得了选择器,修不了你的需求理解

测试架构这行有个一直没解决的尴尬:开发一周能写完的功能,QA 写测试要追两周。 你越想把覆盖率补齐,这个口子张得越大。 所以当 Claude Code 加上 Playwright 这套东西开始能"自己写测试"的时候, QA 圈子是真的盯着看。但我想先泼一句:它确实改变了一些事, 但改变的…...

Cortex-M3调试中JTAG RESET线的关键作用与实践

1. Cortex-M3调试中的JTAG RESET线必要性解析在嵌入式开发领域&#xff0c;调试接口的可靠性直接决定了开发效率。对于使用Keil MDK和ULINK2调试适配器的工程师而言&#xff0c;Cortex-M3设备的JTAG RESET线连接问题经常引发调试连接失败。虽然理论上Cortex-M3内核通过SYSRESET…...

百度网盘Mac版终极加速教程:三步告别限速,免费享受SVIP极速下载

百度网盘Mac版终极加速教程&#xff1a;三步告别限速&#xff0c;免费享受SVIP极速下载 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾经面对…...

一文看明白PyTorch 模型设计训练保存加载预测

需求 #mermaid-svg-cD4ZWwao27fFcatX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cD4ZWwao27fFcatX .ed…...