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版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
9天前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
40 10
|
11天前
|
Linux
Linux安装svn并启动
Linux安装svn并启动
48 10
|
1月前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
70 20
|
30天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
71 7
|
2月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
203 20
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
219 7
|
2月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
62 2
|
2月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
47 6
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
137 4