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是交换机的类型,可以是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"; // 路由键,可自定义(可选)
    @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一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
11天前
|
NoSQL Java 数据库连接
《滚雪球学Spring Boot》教程导航帖(更新于2024.07.16)
📚 《滚雪球学Spring Boot》是由CSDN博主bug菌创作的全面Spring Boot教程。作者是全栈开发专家,在多个技术社区如CSDN、掘金、InfoQ、51CTO等担任博客专家,并拥有超过20万的全网粉丝。该教程分为入门篇和进阶篇,每篇包含详细的教学步骤,涵盖Spring Boot的基础和高级主题。
23 1
《滚雪球学Spring Boot》教程导航帖(更新于2024.07.16)
|
7天前
|
Oracle 关系型数据库 MySQL
linux安装及卸载mysql
在Linux上安装MySQL客户端涉及添加RPM源,运行`yum install mysql-community-client.x86_64 -y`。忘记密码时,编辑`/etc/my.cnf`,添加`skip-grant-tables`,重启MySQL,然后登录修改密码。卸载MySQL需停服,用`rpm -ev`逐个卸载相关组件,删除文件夹,并验证是否卸载干净。重新安装客户端可使用`rpm -ivh`命令。
55 8
|
5天前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
|
11天前
|
SQL Java 数据库
实时计算 Flink版产品使用问题之Spring Boot集成Flink可以通过什么方式实现通过接口启动和关闭Flink程序
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
16天前
|
Web App开发 安全 Linux
Linux系统之安装Firefox浏览器
【7月更文挑战第8天】Linux系统之安装Firefox浏览器
46 8
|
18天前
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成
|
2天前
|
安全 Linux 数据安全/隐私保护
入职必会-开发环境搭建33-VMWare虚拟机安装Linux系统
CentOS(Community ENTerprise Operating System)是一个基于Linux的开源操作系统,它是由社区志愿者团队从Red Hat Enterprise Linux(RHEL)源代码重新编译而成。CentOS致力于提供一个稳定、可靠且免费的企业级Linux发行版,适用于服务器和工作站环境。
|
12天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像12
【7月更文挑战第12天】安装【银河麒麟V10】linux系统--并挂载镜像
70 0
|
16天前
|
Ubuntu 安全 Linux
Linux系统之安装Ninvaders太空入侵者小游戏
【7月更文挑战第9天】Linux系统之安装Ninvaders太空入侵者小游戏
21 0
|
18天前
|
监控 Java Docker
Spring Boot与Traefik的集成
Spring Boot与Traefik的集成

热门文章

最新文章