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

RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成

RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成

1. RabbitMQ简介

RabbitMQ是一个开源的消息代理和队列服务器,用于通过轻量级消息传递协议(AMQP)在分布式系统中传递消息。它支持多种编程语言,包括Java、Python、Ruby等。

2. Linux下安装RabbitMQ

2.1 下载RabbitMQ

访问RabbitMQ官方网站(https://www.rabbitmq.com/download.html),选择适合您操作系统的版本进行下载。

2.2 解压并安装

将下载的RabbitMQ压缩包解压到合适的目录,例如/opt。然后进入解压后的目录,执行以下命令进行安装:

sudo apt-get update
sudo apt-get install -y rabbitmq-server

2.3 启动RabbitMQ服务

安装完成后,启动RabbitMQ服务:

sudo systemctl start rabbitmq-server

2.4 设置开机自启

为了让RabbitMQ服务在系统启动时自动运行,可以执行以下命令:

sudo systemctl enable rabbitmq-server

3. RabbitMQ基本命令

RabbitMQ提供了一些基本的命令来管理队列、交换机和绑定关系。以下是一些常用的命令:

3.1 创建队列

使用rabbitmqctl命令创建一个新的队列:

rabbitmqctl create_queue queue_name

3.2 删除队列

使用rabbitmqctl命令删除一个队列:

rabbitmqctl delete_queue queue_name

3.3 列出所有队列

使用rabbitmqctl命令列出所有的队列:

rabbitmqctl list_queues name messages auto_delete

3.4 创建交换机

使用rabbitmqctl命令创建一个新的交换机:

rabbitmqctl add_exchange exchange_name type

其中,exchange_name是交换机的名称,type是交换机的类型,可以是directfanouttopic等。

3.5 删除交换机

使用rabbitmqctl命令删除一个交换机:

rabbitmqctl delete_exchange exchange_name

3.6 列出所有交换机

使用rabbitmqctl命令列出所有的交换机:

rabbitmqctl list_exchanges name type durable auto_delete internal

3.7 创建绑定关系

使用rabbitmqctl命令创建一个新的绑定关系:

rabbitmqctl bind_queue queue_name exchange_name routing_key

其中,queue_name是要绑定的队列名称,exchange_name是交换机名称,routing_key是路由键。

3.8 删除绑定关系

使用rabbitmqctl命令删除一个绑定关系:

rabbitmqctl unbind_queue queue_name exchange_name routing_key

3.9 列出所有绑定关系

使用rabbitmqctl命令列出所有的绑定关系:

rabbitmqctl list_bindings source destination routing_key

4. RabbitMQ与Spring Boot集成

要将RabbitMQ与Spring Boot集成,需要遵循以下步骤:

4.1 添加依赖

在项目的pom.xml文件中添加RabbitMQ Spring Boot Starter依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

4.2 配置RabbitMQ连接信息

application.propertiesapplication.yml文件中配置RabbitMQ连接信息:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

4.3 创建消息生产者

创建一个消息生产者类,用于发送消息到RabbitMQ队列:

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class MessageProducer {private final AmqpTemplate amqpTemplate;private final String exchange = "my_exchange"; // 交换机名称,可自定义private final String routingKey = "my_routing_key"; // 路由键,可自定义(可选)@Autowiredpublic MessageProducer(AmqpTemplate amqpTemplate) {this.amqpTemplate = amqpTemplate;}public void sendMessage(String message) {amqpTemplate.convertAndSend(exchange, routingKey, message);}
}

4.4 创建消息消费者

创建一个消息消费者类,用于从RabbitMQ队列中接收消息:

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class MessageConsumer {@RabbitListener(queues = "my_queue") // 队列名称,可自定义(可选)public void receiveMessage(String message) {System.out.println("Received message: " + message);}
}

4.5 测试集成效果

现在可以在项目中使用MessageProducer发送消息,并在MessageConsumer中接收消息。例如,在主类中调用sendMessage方法发送消息:

public static void main(String[] args) {MessageProducer messageProducer = new MessageProducer(); // 假设已经注入了AmqpTemplate实例messageProducer.sendMessage("Hello, RabbitMQ!");
}

这样,我们就完成了RabbitMQ在Linux下的安装、基本命令以及与Spring Boot的集成。

相关文章:

RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成

RabbitMQ教程&#xff1a;Linux下安装、基本命令与Spring Boot集成 1. RabbitMQ简介 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;用于通过轻量级消息传递协议&#xff08;AMQP&#xff09;在分布式系统中传递消息。它支持多种编程语言&#xff0c;包括Java、Pytho…...

王者荣耀小游戏

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt; package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.…...

JAVA小游戏“简易版王者荣耀”

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; im…...

Nginx高级

Nginx高级 第一部分&#xff1a;扩容 通过扩容提升整体吞吐量 1.单机垂直扩容&#xff1a;硬件资源增加 云服务资源增加 整机&#xff1a;IBM、浪潮、DELL、HP等 CPU/主板&#xff1a;更新到主流 网卡&#xff1a;10G/40G网卡 磁盘&#xff1a;SAS(SCSI) HDD&#xff08;机械…...

深度学习中小知识点系列(三) 解读Mosaic 数据增强

前言 Mosaic数据增强&#xff0c;这种数据增强方式简单来说就是把4张图片&#xff0c;通过随机缩放、随机裁减、随机排布的方式进行拼接。Mosaic有如下优点&#xff1a; &#xff08;1&#xff09;丰富数据集&#xff1a;随机使用4张图片&#xff0c;随机缩放&#xff0c;再随…...

telnet-MISC-bugku-解题步骤

——CTF解题专栏—— 题目信息&#xff1a; 题目&#xff1a;这是一张单纯的图片 作者&#xff1a;未知 提示&#xff1a;无 解题附件&#xff1a; 解题思路&#xff1a; (⊙﹏⊙)这是个什么文件pcap文件分析_pcap文件打开-CSDN博客查了一下&#xff0c;但没看懂&#xff0c…...

大数据Doris(二十九):数据导入(Insert Into)

文章目录 数据导入(Insert Into) 一、​​​​​​​创建导入...

jmeter测试dubbo接口

本文讲解jmeter测试dubbo接口的实现方式&#xff0c;文章以一个dubbo的接口为例子进行讲解&#xff0c;该dubbo接口实现的功能为&#xff1a; 一&#xff1a;首先我们看服务端代码 代码架构为&#xff1a; 1&#xff1a;新建一个maven工程&#xff0c;pom文件为&#xff1a; 1…...

分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测

分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测 目录 分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.利用DBN进行特征提取&#xff0c;将提取后的特征放入SVM进行分类…...

android系统新特性——用户界面以及系统界面改进

用户界面改进 Android用户界面改进最明显的就是MD了。MD是Google于2014年推出的设计语言&#xff0c;它是一套完整的设计系统&#xff0c;包含了动画、样式、布局、组件等一系列与设计有关的元素。通过对这些行为的描述&#xff0c;让开发者设计出更符合目标的软件&#xff0c…...

电量计驱动代码

外部电量计驱动代码,直接上代码了,懒,不做细节分析。。。。。 /** Fuelgauge battery driver** This package is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License version 2 as* published by the Free Soft…...

如何将音频添加到视频并替换视频中的音轨

随着视频流媒体网站的流行和便携式设备的发展&#xff0c;你可能越来越倾向于自己制作视频并在互联网上分享。有时&#xff0c;你可能还需要编辑视频并为其添加背景音乐&#xff0c;因为音乐总是对视频的感知起着神奇的作用。 那如何给视频添加音频呢&#xff1f;或者如何用新…...

Android 单元测试初体验

Android 单元测试初体验 前言一、单元测试是什么&#xff1f;二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候&#xff0c;老师敢教学进度&#xff0c;翻到单元测试这一章节的时候提了两句&#xff0c;没有把单元测试当重点讲&#xff0c;只…...

HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙应用开发】

文章目录 ARKTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化@Observed 类装饰器说明装饰器参数类装饰器的使用@ObjectLink 变量装饰器说明装饰器参数同步类型允许装饰的变量类型被装饰变量的初始值举例装饰器的限制条件观察变化和行为表现观察的变化框架行为使用场景1.…...

设计问卷调查问题的技巧二:确定问题的结构与顺序

上篇文章中&#xff0c;我们了解到设计问卷调查问卷的技巧有保持问题中立、少用开放式问题、保持全名平衡的答案集、谨慎设置单一回答。在这篇文章中&#xff0c;我们将继续深入探讨设计问卷调查问题的剩余5大技巧&#xff01; Tip5&#xff1a;注意问题的顺序 虽然您可以任意…...

kubernetes使用nfs创建pvc部署mysql stateful的方法

kubernetes创建的pod默认都是无状态的&#xff0c;换句话说删除以后不会保留任何数据。 所以对于mysql这种有状态的应用&#xff0c;必须使用持久化存储作为支撑&#xff0c;才能部署成有状态的stateful. 最简单的方法就是使用nfs作为网络存储&#xff0c;因为nfs存储很容易被…...

JavaScript WebApi(二) 详解

监听事件 介绍 事件监听是一种用于在特定条件下执行代码的编程技术。在Web开发中&#xff0c;事件监听器可以用于捕获和响应用户与页面交互的各种操作&#xff0c;如点击、滚动、输入等。 事件监听的基本原理是&#xff0c;通过在特定元素上注册事件监听器&#xff0c;当事件…...

纯新手发布鸿蒙的第一个java应用

第一个java开发鸿蒙应用 1.下载和安装华为自己的app开发软件DevEco Studio HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 2.打开IDE新建工程&#xff08;当前用的IDEA 3.1.1 Release&#xff09; 选择第一个&#xff0c;其他的默认只能用(API9)版本&#xff0c;…...

UI自动化(selenium+python)之元素定位的三种等待方式!

前言 在UI自动化过程中&#xff0c;常遇到元素未找到&#xff0c;代码报错的情况。这种情况下&#xff0c;需要用等待wait。 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverWait 一、固定等待(sleep) 导入time模块&#xff0c;设定固定的等待时间 缺…...

[C++]指针与结构体

标题 一.指针1.指针的定义和使用2.指针所占的内存空间3.空指针与野指针4.const修饰指针5.指针和数组6.指针和函数 二.结构体1.结构体的定义与使用2.结构体数组3.结构体指针4.结构体的嵌套使用5.结构体做函数参数6.结构体中const使用场景7.案例练习 一.指针 作用: 可以通过指针…...

Phi-4-mini-reasoning效果展示:离散数学关系性质判定与反例构造生成

Phi-4-mini-reasoning效果展示&#xff1a;离散数学关系性质判定与反例构造生成 1. 模型能力概览 Phi-4-mini-reasoning是一个专注于数学推理的轻量级开源模型&#xff0c;基于高质量合成数据训练而成。这个模型特别擅长处理需要逻辑推理的数学问题&#xff0c;尤其是离散数学…...

OpenClaw技能扩展:安装Phi-3-mini-128k-instruct专用Markdown处理器

OpenClaw技能扩展&#xff1a;安装Phi-3-mini-128k-instruct专用Markdown处理器 1. 为什么需要Markdown处理技能 上周我尝试用OpenClawPhi-3-mini-128k-instruct处理技术文档时遇到了尴尬——模型虽然能生成不错的Markdown内容&#xff0c;但当我需要批量转换20多个HTML文件时…...

专业的办公家具哪家技术强

在企业发展进程中&#xff0c;办公家具的优劣至关重要。专业办公家具不仅能提升办公环境舒适度&#xff0c;还能彰显企业形象与实力。然而&#xff0c;市场上办公家具品牌众多&#xff0c;究竟哪家技术强呢&#xff1f;今天&#xff0c;就为大家详细介绍佛山市豪亿办公家具&…...

从Polling到DAQ:在ASAP2 Studio里提前配置XCP测量通道,提升CANape数据采集效率

从Polling到DAQ&#xff1a;在ASAP2 Studio里提前配置XCP测量通道&#xff0c;提升CANape数据采集效率 在汽车电控测试领域&#xff0c;数据采集的效率和精度直接影响着开发周期和标定质量。传统轮询方式&#xff08;Polling&#xff09;虽然简单易用&#xff0c;但面对现代ECU…...

从Remix到Ganache:一次智能合约部署的完整“后台日志”解读

从Remix到Ganache&#xff1a;智能合约部署的"后台日志"深度解析 当你第一次成功部署智能合约时&#xff0c;看到Ganache和Remix控制台输出的那一大串信息&#xff0c;是不是感觉像在看天书&#xff1f;那些Block Hash、Gas Used、txIndex究竟在说什么&#xff1f;这…...

seo在线分析技巧有哪些

SEO在线分析技巧有哪些&#xff1f; 在当今的数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了每一个网站和在线业务的关键。特别是在百度这样的中文搜索引擎平台上&#xff0c;掌握SEO在线分析技巧对提升网站的可见度和流量至关重要。具体有哪些SEO…...

从银行转账到会话管理:用C#时间戳实战防重放攻击与用户超时注销

从银行转账到会话管理&#xff1a;用C#时间戳实战防重放攻击与用户超时注销 在金融级应用开发中&#xff0c;时间戳从来不只是简单的时间表示。当用户A在网银发起一笔转账时&#xff0c;系统如何确认这个请求不是黑客截获后重放的旧数据包&#xff1f;当用户B离开电脑半小时后返…...

模糊聚类实战:用传递闭包法给教师教学质量打分,附Python完整代码

模糊聚类实战&#xff1a;用传递闭包法给教师教学质量打分 教育评价从来不是非黑即白的判断题。当我们试图对教师的教学质量进行分类时&#xff0c;传统的硬性划分方法往往掩盖了教师能力之间的渐变与过渡。四位教师在师德师表、教学过程等五项指标上的评分差异&#xff0c;可能…...

BLDC电机控制原理与PWM技术详解

1. BLDC电机控制基础解析无刷直流电机&#xff08;BLDC&#xff09;作为现代电机控制领域的重要成员&#xff0c;其控制原理与传统有刷电机存在本质差异。BLDC电机通过电子换向取代机械换向&#xff0c;这种设计带来了更高的效率和可靠性&#xff0c;但同时也增加了控制复杂度。…...

查重踩坑血泪史:免费软件、PaPerPass、AIGC率、淘宝旗舰店

规避雷区 最近为了查重&#xff0c;折腾得心力交瘁。多方打听、多次数据对比之后&#xff0c;总结了一些“花钱买教训”的经验&#xff0c;写成几个点分享出来&#xff0c;希望能帮大家少走弯路。千万避雷某多多。 1️⃣ 免费软件的“Pass查重”低于10%还算靠谱 经过多个数据…...