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

简介: 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是交换机的类型,可以是direct、fanout、topic等。

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.properties或application.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"; // 路由键,可自定义(可选)
    @Autowired
    public 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的集成。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
584 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
879 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
2055 5
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
597 5
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
1444 0
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
监控 Cloud Native Java
Spring Integration 企业集成模式技术详解与实践指南
本文档全面介绍 Spring Integration 框架的核心概念、架构设计和实际应用。作为 Spring 生态系统中的企业集成解决方案,Spring Integration 基于著名的 Enterprise Integration Patterns(EIP)提供了轻量级的消息驱动架构。本文将深入探讨其消息通道、端点、过滤器、转换器等核心组件,以及如何构建可靠的企业集成解决方案。
1019 0
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。