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

如何快速上手RabbitMQ 笔记250304

如何快速上手RabbitMQ

要快速上手 RabbitMQ,可以按照以下步骤进行,从安装到基本使用逐步掌握核心概念和操作:


1. 理解核心概念

  • Producer(生产者):发送消息的程序。
  • Consumer(消费者):接收消息的程序。
  • Queue(队列):存储消息的缓冲区,消息通过队列被发送给消费者。
  • Exchange(交换机):接收生产者发送的消息,并根据规则(绑定和路由键)将消息路由到队列。
  • Binding(绑定):连接交换机和队列的规则,定义消息如何路由。
  • Routing Key(路由键):生产者发送消息时指定的键,用于交换机路由消息。

2. 安装 RabbitMQ

通过 Docker 安装(推荐)
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
  • 5672 是 AMQP 协议端口(消息通信)。
  • 15672 是 Web 管理界面端口,访问 http://localhost:15672,默认账号密码:guest/guest
Ubuntu/Debian
sudo apt-get install rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
macOS(Homebrew)
brew install rabbitmq
brew services start rabbitmq

3. 快速上手:发送和接收消息

安装 Python 客户端库
pip install pika
生产者(Producer)示例
import pika# 连接到 RabbitMQ 服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 创建一个队列(如果不存在)
channel.queue_declare(queue='hello')# 发送消息到队列
channel.basic_publish(exchange='', routing_key='hello', body='Hello RabbitMQ!')
print(" [x] Sent 'Hello RabbitMQ!'")connection.close()
消费者(Consumer)示例
import pikadef callback(ch, method, properties, body):print(f" [x] Received {body}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 确保队列存在
channel.queue_declare(queue='hello')# 订阅队列并设置回调函数
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

以下是使用 Java 客户端库 amqp-client 实现 RabbitMQ 的简单生产者和消费者代码示例:

1. 添加依赖(Maven)

<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.16.0</version>
</dependency>

2. 生产者(Producer)

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;public class Producer {private final static String QUEUE_NAME = "hello";public static void main(String[] args) {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost"); // RabbitMQ 服务器地址try (Connection connection = factory.newConnection();Channel channel = connection.createChannel()) {// 声明队列(如果不存在则创建)channel.queueDeclare(QUEUE_NAME, false, false, false, null);// 发送消息String message = "Hello RabbitMQ from Java!";channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println(" [x] Sent: '" + message + "'");} catch (Exception e) {e.printStackTrace();}}
}

3. 消费者(Consumer)

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;public class Consumer {private final static String QUEUE_NAME = "hello";public static void main(String[] args) {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");try (Connection connection = factory.newConnection();Channel channel = connection.createChannel()) {// 声明队列(与生产者一致)channel.queueDeclare(QUEUE_NAME, false, false, false, null);System.out.println(" [*] Waiting for messages. To exit press CTRL+C");// 定义消息处理回调DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println(" [x] Received: '" + message + "'");};// 订阅队列并消费消息channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {});// 保持消费者持续运行while (true) {Thread.sleep(1000);}} catch (Exception e) {e.printStackTrace();}}
}

4. 运行步骤

  1. 启动 RabbitMQ 服务(如通过 Docker)。
  2. 先运行消费者:它会持续监听队列。
  3. 再运行生产者:发送消息后,消费者会立即打印接收到的消息。

5. 关键代码说明

代码片段说明
ConnectionFactory配置 RabbitMQ 连接信息(地址、端口、用户名、密码等)。
channel.queueDeclare()声明队列(参数:队列名、是否持久化、是否独占、是否自动删除、其他属性)。
channel.basicPublish()发送消息(参数:交换机名、路由键、消息属性、消息体)。
channel.basicConsume()订阅队列并消费消息(参数:队列名、自动ACK、回调函数、取消回调)。

6. 高级配置

消息持久化
// 声明持久化队列(服务重启后队列仍存在)
boolean durable = true;
channel.queueDeclare(QUEUE_NAME, durable, false, false, null);// 发送持久化消息
channel.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());
手动消息确认(ACK)
// 关闭自动确认(autoAck = false)
channel.basicConsume(QUEUE_NAME, false, deliverCallback, consumerTag -> {});// 在回调中手动确认消息
DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println(" [x] Received: '" + message + "'");// 手动发送 ACKchannel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
};

7. 管理界面验证

访问 http://localhost:15672,在 Web 界面中:

  • 查看 hello 队列是否创建。
  • 监控消息的发布和消费状态。

通过以上代码,你可以在 Java 中快速实现 RabbitMQ 的基本消息通信!


4. 理解交换机(Exchange)类型

RabbitMQ 的交换机决定消息如何路由到队列,常见类型:

  1. Direct Exchange:根据路由键精确匹配。
  2. Fanout Exchange:广播到所有绑定的队列。
  3. Topic Exchange:基于通配符的路由(如 logs.*)。
  4. Headers Exchange:基于消息头的键值对匹配。

5. 管理界面

访问 http://localhost:15672,可以:

  • 查看队列、交换机、绑定的状态。
  • 监控消息流量。
  • 创建虚拟主机(Vhost)和用户权限管理。

6. 高级主题(后续学习)

  1. 消息持久化:防止服务器重启后消息丢失。
    channel.queue_declare(queue='task_queue', durable=True)
    channel.basic_publish(exchange='', routing_key='task_queue', body=message, properties=pika.BasicProperties(delivery_mode=2))
    
  2. 消息确认(ACK):确保消息被正确处理。
    channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=False)
    
  3. 集群与高可用:通过镜像队列实现故障转移。
  4. 插件扩展:如 rabbitmq_delayed_message_exchange 支持延迟消息。

7. 学习资源

  • 官方文档:RabbitMQ Documentation
  • 教程:RabbitMQ Tutorials
  • 书籍:《RabbitMQ in Action》

通过以上步骤,你可以在 1 小时内完成 RabbitMQ 的基础使用,后续再逐步深入高级功能!









以下是 RabbitMQ 快速上手 的核心步骤,帮助你在最短时间内理解并运行第一个消息队列:


1. 安装 RabbitMQ(推荐 Docker 方式)

# 使用 Docker 一键启动(包含 Web 管理界面)
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
  • 访问管理界面http://localhost:15672,账号密码 guest/guest
  • 端口说明
    • 5672:消息通信端口(AMQP 协议)。
    • 15672:Web 管理界面。

2. 基础概念

概念说明
Producer生产者,发送消息的程序。
Consumer消费者,接收消息的程序。
Queue消息的缓冲区,存储待消费的消息。
Exchange交换机,接收消息并根据规则(路由键)将消息分发到队列。

3. 快速示例(Python + pika 客户端)

步骤 1:安装 Python 客户端
pip install pika
步骤 2:生产者(发送消息)
import pika# 连接 RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 创建队列(如果不存在)
channel.queue_declare(queue='hello')# 发送消息到队列
channel.basic_publish(exchange='', routing_key='hello', body='Hello RabbitMQ!')
print(" [x] Sent 'Hello RabbitMQ!'")connection.close()  # 关闭连接
步骤 3:消费者(接收消息)
import pika# 定义消息处理函数
def callback(ch, method, properties, body):print(f" [x] Received {body}")# 连接 RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 确保队列存在
channel.queue_declare(queue='hello')# 订阅队列并消费消息
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
运行结果
  1. 先运行 消费者 脚本(会持续等待消息)。
  2. 再运行 生产者 脚本,消费者会立即打印收到的消息。

4. 核心操作流程

  1. 生产者:连接 RabbitMQ → 声明队列 → 发送消息。
  2. 消费者:连接 RabbitMQ → 声明队列 → 监听队列 → 处理消息。

5. 管理界面(Web UI)

通过 http://localhost:15672 可以:

  • 查看所有队列和交换机。
  • 监控消息流量。
  • 管理用户权限和虚拟主机(Vhost)。

6. 下一步学习

主题说明
交换机类型Direct、Fanout、Topic、Headers 的区别
消息持久化防止服务器重启后消息丢失
消息确认机制确保消息被消费者正确处理
死信队列处理失败或超时的消息

7. 常用命令

# 查看 RabbitMQ 状态
docker exec rabbitmq rabbitmqctl status# 列出所有队列
docker exec rabbitmq rabbitmqctl list_queues# 清除队列数据
docker exec rabbitmq rabbitmqctl purge_queue hello

通过以上步骤,你可以在 10 分钟 内完成 RabbitMQ 的基础使用,后续再逐步深入高级功能!









要快速上手RabbitMQ,可以按照以下步骤进行:

一、了解RabbitMQ基本概念

  1. 消息队列:RabbitMQ是一种消息队列软件,用于在应用程序之间传递消息。消息队列可以看作是放置消息的容器,遵循先进先出原则。
  2. 交换机与队列:交换机负责接收生产者的消息,并根据路由键将消息路由到相应的队列。队列是存储消息的地方,消费者从队列中获取消息进行处理。
  3. 虚拟主机:RabbitMQ中的虚拟主机提供资源隔离、权限控制和配置独立性,使得同一台服务器上的多个应用能够安全、独立地运行在自己的“虚拟环境”中。

二、安装与配置RabbitMQ

  1. 安装Erlang:由于RabbitMQ是基于Erlang语言开发的,因此需要先安装Erlang运行环境。可以从Erlang官网下载安装包并进行安装。
  2. 安装RabbitMQ:从RabbitMQ官网下载安装包,按照提示进行安装。安装完成后,RabbitMQ会在系统开始菜单中添加服务快捷键。
  3. 启动RabbitMQ服务:通过开始菜单中的RabbitMQ Service启动服务。如果需要,也可以通过命令行进行启动、停止和重启操作。
  4. 开启Web管理界面:通过执行rabbitmq-plugins enable rabbitmq_management命令开启Web管理界面,然后在浏览器中输入http://localhost:15672进行访问。默认账号密码为guest/guest。

三、编写代码实现消息发布与消费

  1. 引入依赖:在项目中引入RabbitMQ的客户端库,例如Java项目中可以引入amqp-client库。
  2. 创建连接和信道:使用ConnectionFactory创建连接,然后通过连接创建信道。信道是用于发送和接收消息的通道。
  3. 声明队列和交换机:根据需要声明队列和交换机。队列用于存储消息,而交换机用于将消息路由到队列。
  4. 发送消息:使用信道的basicPublish方法发送消息到指定的交换机和队列中。
  5. 接收消息:使用信道的basicConsume方法订阅队列并消费消息。可以设置自动确认或手动确认消息的处理情况。

四、实践与调试

  1. 编写简单的生产者和消费者程序进行测试,确保消息能够正确地发送到队列并被消费者接收处理。
  2. 尝试使用不同的交换机类型和路由键来实现更复杂的消息路由逻辑。
  3. 监控RabbitMQ的运行状态和性能指标,确保系统的稳定性和高效性。

通过以上步骤,你应该能够快速上手RabbitMQ并进行基本的操作和开发工作。在实际应用中,还需要根据具体需求进行更深入的学习和实践。









RabbitMQ快速上手可以从以下几个方面进行:

一、了解基本概念

  1. 消息队列:RabbitMQ是一个开源的消息队列软件,它允许应用程序之间异步地传递数据。消息队列可以看作是放置消息的容器,按照先进先出的原则进行处理。

  2. Producer和Consumer

    • Producer(生产者):负责创建消息并发送到RabbitMQ。
    • Consumer(消费者):从RabbitMQ接收消息进行处理。
  3. Exchange(交换机):消息到达RabbitMQ的第一站,负责接收生产者发送的消息,并根据特定的规则将这些消息路由到一个或多个Queue中。常见的交换机类型包括Direct(点对点)、Topic(发布-订阅)等。

  4. Queue(队列):RabbitMQ的内部对象,用于存储消息。多个消费者可以订阅同一个队列。

  5. Virtual Host:为消息队列提供了一种逻辑上的隔离机制。一个Broker可以开设多个vhost,用于隔离不同的应用环境。

二、安装与配置

  1. 安装Erlang:RabbitMQ是用Erlang编写的,因此需要先安装Erlang环境。

  2. 安装RabbitMQ:从官方网站下载安装包并按照指引进行安装。

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

  4. 开启Web管理:通过相关命令开启RabbitMQ的Web管理功能,便于可视化管理。

三、编写代码

  1. 引入依赖:在项目中引入RabbitMQ的客户端依赖库。

  2. 建立连接:创建与RabbitMQ的连接,并开启信道(Channel)。

  3. 声明交换机和队列:根据需要声明交换机和队列,以便进行消息的路由和存储。

  4. 发送和接收消息:通过信道发送消息到交换机,并由交换机路由到相应的队列;消费者从队列中接收并处理消息。

四、实践与调试

  1. 编写测试程序:创建简单的生产者和消费者程序,测试消息的发送和接收功能。

  2. 复杂路由逻辑:尝试使用不同的交换机类型和路由规则,实现更复杂的消息传递逻辑。

  3. 监控与调优:利用RabbitMQ的管理界面或相关监控工具,观察RabbitMQ的运行状态和性能指标,确保系统的稳定性和高效性。

总结:通过了解RabbitMQ的基本概念、安装配置、编写代码以及实践与调试等步骤,可以快速上手RabbitMQ并实现消息队列的基本操作和开发工作。在实际应用中还需根据具体需求进行深入学习和实践。









要快速上手RabbitMQ,你可以按照以下步骤进行:

1. 了解RabbitMQ的基本概念和用途[@1@]

RabbitMQ是一种典型的消息队列(Message Queue,MQ)产品。MQ的作用是将同步的事件驱动改为异步的消息驱动,通过消息队列在不同的应用程序之间进行数据传递。这种机制能够实现解耦、异步和削峰的效果。

2. 安装和配置RabbitMQ环境[@2@]

  • 前置环境:RabbitMQ是基于Erlang语言开发的,因此在安装RabbitMQ之前需要先安装Erlang语言环境。需要注意的是,RabbitMQ与Erlang语言之间是有版本对应关系的。
  • 安装RabbitMQ服务:可以通过多种方式安装RabbitMQ服务,如手动安装、使用Docker等。在学习阶段,建议手动安装以更好地了解产品细节。安装完成后,可以使用service rabbitmq-server start等指令来启动和停止RabbitMQ服务。

3. 学习RabbitMQ的核心概念[@2@]

  • 队列(Queue):存储消息的FIFO(先进先出)数据结构。
  • 交换机(Exchange):负责消息的路由,根据路由规则将消息发送到指定的队列。
  • 绑定(Binding):定义了交换机和队列之间的关系,指定了消息如何从交换机路由到队列。

4. 通过编写简单的示例程序来实践RabbitMQ的基本操作[@2@]

以下是一个简单的示例,展示了如何使用Java和RabbitMQ客户端库来发送和接收消息。

发送消息(Publisher)
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;public class PublisherTest {public static void main(String[] args) throws IOException, TimeoutException {// 建立连接ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost"); // 设置RabbitMQ服务器IPfactory.setPort(5672); // 设置端口号factory.setVirtualHost("/"); // 设置虚拟主机factory.setUsername("guest"); // 设置用户名factory.setPassword("guest"); // 设置密码Connection connection = factory.newConnection();// 创建通道Channel channel = connection.createChannel();// 声明队列String queueName = "test.queue";channel.queueDeclare(queueName, false, false, false, null);// 发送消息String message = "Hello, RabbitMQ!";channel.basicPublish("", queueName, null, message.getBytes());System.out.println("发送消息成功:【" + message + "】");// 关闭通道和连接channel.close();connection.close();}
}
接收消息(Consumer)
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;public class ConsumerTest {public static void main(String[] args) throws IOException, TimeoutException {// 建立连接ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost"); // 设置RabbitMQ服务器IPfactory.setPort(5672); // 设置端口号factory.setVirtualHost("/"); // 设置虚拟主机factory.setUsername("guest"); // 设置用户名factory.setPassword("guest"); // 设置密码Connection connection = factory.newConnection();// 创建通道Channel channel = connection.createChannel();// 声明队列String queueName = "test.queue";channel.queueDeclare(queueName, false, false, false, null);// 订阅消息DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println("接收消息成功:【" + message + "】");};channel.basicConsume(queueName, true, deliverCallback, consumerTag -> { });}
}

5. 查阅官方文档或相关教程,深入了解RabbitMQ的高级特性和最佳实践[@1@]

RabbitMQ的官方文档提供了详细的使用指南和API参考,是学习RabbitMQ的重要资源。此外,还可以查阅相关的教程和博客,了解RabbitMQ的高级特性和最佳实践,如消息确认、持久化、事务等。

通过以上步骤,你应该能够快速上手RabbitMQ,并开始在实际项目中使用它。









快速上手RabbitMQ,首先需要了解其基本概念、安装配置方法以及如何编写简单的生产者和消费者程序。以下是一个详细步骤指南:

一、理解基本概念

RabbitMQ 是一个实现高级消息队列协议(AMQP)的开源消息代理软件(亦称消息中间件)。它主要用于应用程序之间传递消息,并且支持多种消息分发策略。在开始使用 RabbitMQ 之前,你需要熟悉一些核心概念:

  • Message(消息):应用程序间传递的数据包。
  • Queue(队列):存储消息的地方。
  • Exchange(交换机):接收生产者发送的消息并根据一定的规则将消息路由到一个或多个队列。
  • Binding(绑定):定义了 Exchange 和 Queue 之间的关系,即消息如何从 Exchange 路由到 Queue。
  • Routing Key(路由键):用于决定消息应该被发送到哪个队列。
  • Virtual Host(虚拟主机):提供了一个逻辑分组的概念,允许不同的用户访问不同的队列和交换机。

二、安装RabbitMQ

为了运行 RabbitMQ,你需要先安装 Erlang 语言环境,因为 RabbitMQ 是用 Erlang 编写的 。接下来,你可以选择适合自己操作系统的 RabbitMQ 安装包进行安装。例如,在 Ubuntu 上可以通过 apt-get 命令来安装 RabbitMQ 。

确保你也安装了 RabbitMQ 的管理插件以便能够通过 Web 界面来监控和管理你的 RabbitMQ 实例。默认情况下,你可以通过 http://localhost:15672 访问 RabbitMQ 的管理界面,并使用默认的用户名和密码(guest/guest)登录。

三、创建工程并添加依赖

如果你打算使用 Java 来开发 RabbitMQ 应用,那么可以创建一个 Maven 或 Gradle 工程,并添加相应的依赖项。例如,在 Maven 中你可能需要添加如下依赖:

<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>x.y.z</version>
</dependency>

这里的版本号应根据实际使用的 RabbitMQ 版本来调整。

四、编写生产者代码

下面是一个简单的生产者代码示例,它会向指定的队列发送一条消息:

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
try (Connection connection = factory.newConnection();Channel channel = connection.createChannel()) {channel.queueDeclare(QUEUE_NAME, false, false, false, null);String message = "Hello World!";channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println(" [x] Sent '" + message + "'");
}

这段代码首先创建了一个连接工厂并设置了 RabbitMQ 服务器的位置,然后建立了与服务器的连接和通道,并声明了一个名为 QUEUE_NAME 的队列,最后发送了一条消息到该队列中 。

五、编写消费者代码

接着是消费者的代码,它负责监听特定队列并处理接收到的消息:

DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println(" [x] Received '" + message + "'");
};
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });

这个消费者设置了一个回调函数,每当有新消息到达时就会调用该函数处理消息 。

六、测试

启动 RabbitMQ 服务,然后分别运行生产者和消费者的程序。你应该能够在消费者的控制台看到输出的消息内容,表明消息已经成功地从生产者传送到消费者。

以上就是快速上手 RabbitMQ 的基本流程。当然,RabbitMQ 还支持更复杂的工作模式和特性,如工作队列、发布/订阅、路由、主题等,这些都需要进一步学习和实践 。此外,官方文档和社区提供的资源也是深入学习的好帮手。









快速上手 RabbitMQ 涉及几个关键步骤,包括安装 RabbitMQ、理解其基本概念、建立连接、发送和接收消息等。下面是一个简化的指南来帮助你开始使用 RabbitMQ。

1. 安装 RabbitMQ

首先,你需要在你的机器上安装 RabbitMQ。根据你的操作系统选择合适的安装方式:

  • Linux: 可以通过包管理器安装,如 apt-getyum
  • Windows: 下载并运行官方提供的安装程序。
  • MacOS: 使用 Homebrew 进行安装。

确保你也安装了 Erlang,因为 RabbitMQ 是用 Erlang 编写的 。此外,为了方便管理和监控,你可以启用 RabbitMQ 的管理插件,通常可以通过命令行工具 rabbitmq-plugins enable rabbitmq_management 来完成。

2. 理解核心概念

在开始编程之前,理解 RabbitMQ 的一些核心概念是很有帮助的:

  • Producer(生产者):负责生成消息的应用程序。
  • Consumer(消费者):负责接收和处理消息的应用程序。
  • Queue(队列):存储消息的地方。
  • Exchange(交换机):决定消息如何路由到队列。
  • Binding(绑定):定义了 Exchange 和 Queue 之间的关系。
  • Routing Key(路由键):用于匹配 Exchange 和 Binding 的关键字。

3. 配置开发环境

对于 Java 开发者来说,你需要添加 RabbitMQ 的 Java 客户端库到你的项目中。如果你使用的是 Maven 项目,可以在 pom.xml 中添加以下依赖:

<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.7.1</version>
</dependency>

请根据需要调整版本号。

4. 编写代码

生产者代码示例

下面是一个简单的生产者代码示例,它将一条消息发送到一个名为 simple_queue 的队列中:

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;public class Send {private final static String QUEUE_NAME = "simple_queue";public static void main(String[] argv) throws Exception {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");try (Connection connection = factory.newConnection();Channel channel = connection.createChannel()) {channel.queueDeclare(QUEUE_NAME, false, false, false, null);String message = "Hello World!";channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println(" [x] Sent '" + message + "'");}}
}
消费者代码示例

接着是消费者的代码,它监听特定队列并处理接收到的消息:

import com.rabbitmq.client.*;public class Recv {private final static String QUEUE_NAME = "simple_queue";public static void main(String[] argv) throws Exception {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");Connection connection = factory.newConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println(" [x] Received '" + message + "'");};channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });}
}

5. 测试与调试

启动 RabbitMQ 服务,并确保管理界面可以访问。然后分别运行上述的生产者和消费者程序。你应该能够在消费者的控制台看到输出的消息内容,这表明消息已经成功地从生产者传送到消费者。

6. 进一步学习

一旦熟悉了基本的操作,你可以进一步探索 RabbitMQ 提供的不同工作模式,如 Work Queues、Publish/Subscribe、Routing 和 Topics 。每个模式都有其特定的用途和适用场景,可以帮助你构建更加复杂的消息传递系统。

以上就是快速上手 RabbitMQ 的基本流程。记住,实践是最好的老师,通过不断地编写和测试代码,你会逐渐掌握 RabbitMQ 的更多特性和最佳实践。









RabbitMQ是一个流行的开源消息队列系统,以下是一些帮助你快速上手RabbitMQ的方法:

了解基本概念

  • 消息队列:理解消息队列作为一种异步通信机制的作用,它允许不同的应用程序或服务之间进行解耦,实现可靠的消息传递。
  • RabbitMQ中的角色
    • 生产者:负责创建并发送消息到消息队列。
    • 消费者:从消息队列中获取并处理消息。
    • 交换机(Exchange):接收生产者发送的消息,并根据路由键将消息路由到相应的队列。
    • 队列(Queue):存储消息的缓冲区,等待消费者来获取消息。
    • 绑定(Binding):将交换机和队列关联起来,定义了消息如何从交换机路由到队列。

安装与配置

  • 安装RabbitMQ:根据你的操作系统,按照官方文档的指导进行RabbitMQ的安装。例如在Linux系统中,可以使用包管理工具进行安装;在Windows系统中,可以下载安装包进行安装。
  • 安装管理插件:RabbitMQ提供了管理插件,通过它可以方便地在Web界面中管理和监控RabbitMQ服务器。安装完成后,可通过http://localhost:15672访问管理界面,默认用户名和密码通常都是guest
  • 配置环境:了解如何配置RabbitMQ的环境参数,如内存限制、磁盘空间限制等。可以通过修改配置文件或在启动命令中传递参数来进行配置。

学习客户端API

  • 选择编程语言:RabbitMQ支持多种编程语言,如Python、Java、C#等。选择你熟悉的语言,然后学习对应的客户端API。
  • 连接到RabbitMQ服务器:使用客户端API建立与RabbitMQ服务器的连接。例如在Python中,使用pika库可以这样连接:
import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
  • 创建交换机和队列:使用API创建交换机和队列,并将它们绑定在一起。
channel.exchange_declare(exchange='my_exchange', exchange_type='direct')
channel.queue_declare(queue='my_queue')
channel.queue_bind(queue='my_queue', exchange='my_exchange', routing_key='my_routing_key')
  • 发送和接收消息:编写代码实现生产者发送消息和消费者接收消息的功能。
# 生产者发送消息
message = "Hello, RabbitMQ!"
channel.basic_publish(exchange='my_exchange', routing_key='my_routing_key', body=message)# 消费者接收消息
def callback(ch, method, properties, body):print(f"Received message: {body.decode()}")channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)
channel.start_consuming()

实践与案例

  • 官方文档示例:参考RabbitMQ官方文档中的示例代码,了解不同场景下的使用方式和最佳实践。
  • 小型项目实践:尝试创建一些小型的项目,如订单处理系统、任务队列等,将RabbitMQ应用到实际项目中,加深对它的理解和掌握。
  • 学习他人代码:在代码托管平台上搜索RabbitMQ相关的开源项目,学习他人的代码结构和设计思路。

监控与维护

  • 监控工具:利用RabbitMQ管理界面或第三方监控工具,如Prometheus、Grafana等,监控RabbitMQ的运行状态,包括消息队列的长度、消息的发送和接收速率、服务器资源使用情况等。
  • 日志分析:了解如何查看和分析RabbitMQ的日志文件,以便及时发现和解决问题。









要快速上手RabbitMQ,可以按照下面的步骤进行:

1. 理解核心概念

  • 消息队列:本质上是一种在应用程序或服务间实现异步通信的机制,能够将消息存储在队列中,直到接收方准备好处理。这样可以有效解耦生产者和消费者,提高系统的可扩展性和稳定性。
  • RabbitMQ核心组件
    • 生产者(Producer):负责创建消息并将其发送到RabbitMQ。
    • 消费者(Consumer):从RabbitMQ中获取消息并进行处理。
    • 交换机(Exchange):接收生产者发送的消息,并根据规则将消息路由到一个或多个队列。
    • 队列(Queue):用于存储消息,直到被消费者处理。
    • 绑定(Binding):定义了交换机和队列之间的关联关系,决定消息如何从交换机路由到队列。

2. 安装与启动

安装
  • Linux(以Ubuntu为例)
# 添加Erlang仓库
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
echo "deb https://packages.erlang-solutions.com/ubuntu focal contrib" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
# 更新包列表
sudo apt-get update
# 安装Erlang
sudo apt-get install erlang
# 添加RabbitMQ仓库
echo "deb https://dl.bintray.com/rabbitmq/debian focal main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -
# 安装RabbitMQ
sudo apt-get install rabbitmq-server
  • Windows:从RabbitMQ官方下载页面下载Windows安装包,然后按照安装向导完成安装。
启动
  • Linux
sudo systemctl start rabbitmq-server
  • Windows:在开始菜单中找到RabbitMQ服务并启动。

3. 启用管理插件

RabbitMQ的管理插件提供了一个直观的Web界面,方便管理和监控RabbitMQ服务器。

sudo rabbitmq-plugins enable rabbitmq_management

启动后,通过浏览器访问 http://localhost:15672 ,使用默认用户名 guest 和密码 guest 登录。

4. 选择客户端库并编写代码

Python示例(使用pika库)
  • 安装pika
pip install pika
  • 生产者代码
import pika# 建立与RabbitMQ服务器的连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 声明一个队列
channel.queue_declare(queue='hello')# 发送消息
message = 'Hello, RabbitMQ!'
channel.basic_publish(exchange='', routing_key='hello', body=message)
print(f" [x] Sent '{message}'")# 关闭连接
connection.close()
  • 消费者代码
import pika# 建立与RabbitMQ服务器的连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 声明一个队列
channel.queue_declare(queue='hello')# 定义回调函数,用于处理接收到的消息
def callback(ch, method, properties, body):print(f" [x] Received '{body.decode()}'")# 告诉RabbitMQ使用callback函数从队列中接收消息
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)print(' [*] Waiting for messages. To exit press CTRL+C')
# 开始消费消息
channel.start_consuming()

5. 运行代码

  • 分别保存上述生产者和消费者代码为 producer.pyconsumer.py
  • 先运行消费者代码:
python consumer.py
  • 再运行生产者代码:
python producer.py

此时,你应该能在消费者的控制台看到接收到的消息。

6. 深入学习与实践

  • 学习更多模式:RabbitMQ提供了多种消息传递模式,如工作队列、发布/订阅、路由、主题等,深入学习这些模式可以满足不同的业务需求。
  • 实践项目:尝试将RabbitMQ应用到实际的小型项目中,如异步任务处理、微服务通信等,通过实践加深对其的理解和掌握。









以下是快速上手 RabbitMQ 的步骤:

1. 安装 RabbitMQ

  • 安装 Erlang:RabbitMQ 基于 Erlang 语言开发,因此需要先安装 Erlang。例如,在 Ubuntu 系统中,可以使用以下命令安装:
    sudo apt-get update
    sudo apt-get install erlang
    
  • 安装 RabbitMQ:在 Ubuntu 系统中,可以使用以下命令安装 RabbitMQ:
    sudo apt-get install rabbitmq-server
    
  • 启动服务
    sudo systemctl start rabbitmq-server
    sudo systemctl enable rabbitmq-server
    sudo systemctl status rabbitmq-server
    
  • 启用管理插件:为了方便管理,可以启用 RabbitMQ 的管理插件:
    sudo rabbitmq-plugins enable rabbitmq_management
    
    启用后,可以通过浏览器访问 http://localhost:15672,默认用户名和密码为 guest/guest

2. 了解核心概念

  • 生产者(Producer):发送消息到队列的程序。
  • 消费者(Consumer):从队列中接收消息的程序。
  • 交换机(Exchange):接收生产者的消息并将它们路由到队列。
  • 队列(Queue):存储消息的容器。
  • 绑定(Binding):将交换机和队列关联起来,定义消息的路由规则。

3. 编写简单的生产者和消费者代码

以下是一个基于 Python 的简单示例,使用 pika 库与 RabbitMQ 交互:

  • 安装依赖
    pip install pika
    
  • 生产者代码
    import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()channel.queue_declare(queue='my_queue')
    channel.basic_publish(exchange='', routing_key='my_queue', body='Hello, world!')
    print("Sent 'Hello, world!'")
    connection.close()
    
  • 消费者代码
    import pikadef callback(ch, method, properties, body):print(f"Received {body}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()channel.queue_declare(queue='my_queue')
    channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)print('Waiting for messages. To exit press CTRL+C')
    channel.start_consuming()
    

4. 使用管理界面进行操作

  • 访问管理界面:通过浏览器访问 http://localhost:15672,登录后可以:
    • 创建用户和权限。
    • 管理交换机、队列和绑定。
    • 监控系统性能和消息队列状态。
  • 创建队列和交换机:可以在管理界面中手动创建队列和交换机,也可以通过代码动态创建。

5. 进阶学习

  • 深入理解交换机类型:RabbitMQ 支持多种交换机类型(如 Direct、Fanout、Topic 等),每种类型适用于不同的场景。
  • 持久化和消息确认:了解如何确保消息在 RabbitMQ 中持久化存储以及如何实现消息确认机制。
  • 集群部署:在生产环境中,RabbitMQ 可以通过集群部署来提高可用性和扩展性。

通过以上步骤,你可以快速上手 RabbitMQ,并开始构建基于消息队列的应用程序。









好的,以下是一个更简洁的 RabbitMQ快速上手指南,帮助你快速搭建和使用RabbitMQ。


1. 安装 RabbitMQ

1.1 安装 Erlang

RabbitMQ 基于 Erlang 开发,因此需要先安装 Erlang。以 Linux 系统为例:

sudo apt-get update
sudo apt-get install erlang
1.2 安装 RabbitMQ

在 Linux 上安装 RabbitMQ:

sudo apt-get install rabbitmq-server
1.3 启动并启用管理插件

启动 RabbitMQ 服务,并启用管理插件以便通过 Web 管理界面操作:

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
sudo rabbitmq-plugins enable rabbitmq_management

访问管理界面:http://localhost:15672,默认用户名和密码为 guest/guest


2. 核心概念

  • 生产者(Producer):发送消息的程序。
  • 消费者(Consumer):接收消息的程序。
  • 队列(Queue):存储消息的容器。
  • 交换机(Exchange):将消息路由到队列。
  • 绑定(Binding):连接交换机和队列。

3. 编写简单的生产者和消费者

以下是一个基于 Python 的简单示例,使用 pika 库。

3.1 安装依赖
pip install pika
3.2 生产者代码
import pika# 创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 声明队列
channel.queue_declare(queue='hello_queue')# 发送消息
channel.basic_publish(exchange='', routing_key='hello_queue', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
3.3 消费者代码
import pikadef callback(ch, method, properties, body):print(f" [x] Received {body}")# 创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 声明队列
channel.queue_declare(queue='hello_queue')# 设置消费者
channel.basic_consume(queue='hello_queue', on_message_callback=callback, auto_ack=True)print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

运行生产者代码后,消费者会接收到消息。


4. 使用管理界面

通过 http://localhost:15672 访问管理界面:

  • 创建队列和交换机:可以在界面中手动创建队列和交换机。
  • 查看消息:实时监控队列中的消息和状态。

5. 进阶学习

  • 交换机类型:学习 Direct、Fanout、Topic 等交换机类型的使用场景。
  • 持久化和消息确认:确保消息在服务器重启后不会丢失。
  • 集群部署:在生产环境中,通过集群提高可用性和性能。

6. 资源推荐

  • 官方文档:https://www.rabbitmq.com/documentation.html
  • 教程:https://www.rabbitmq.com/getstarted.html

通过以上步骤,你可以在短时间内快速上手 RabbitMQ,并开始构建基于消息队列的应用程序。









1. 基础概念 \boxed{1.\ 基础概念} 1. 基础概念

  • 消息队列:应用程序间的通信中介,实现解耦/异步/削峰
  • AMQP协议:RabbitMQ遵循的高级消息队列协议
  • 核心组件
    • 生产者(Producer):发送消息
    • 消费者(Consumer):接收消息
    • 队列(Queue):消息存储容器
    • 交换机(Exchange):消息路由中枢
    • 绑定(Binding):连接交换机与队列的规则

2. 环境搭建 \boxed{2.\ 环境搭建} 2. 环境搭建

# Ubuntu安装
sudo apt-get install erlang
sudo apt-get install rabbitmq-server
sudo service rabbitmq-server start# Mac安装
brew install rabbitmq
/usr/local/sbin/rabbitmq-server# Windows
官网下载安装包,默认配置安装后启动服务

3. 第一个示例( P y t h o n ) \boxed{3.\ 第一个示例(Python)} 3. 第一个示例(Python
① 安装客户端库:

pip install pika

② 生产者代码:

import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()channel.queue_declare(queue='hello')  # 创建队列
channel.basic_publish(exchange='', routing_key='hello',body='Hello RabbitMQ!')
connection.close()

③ 消费者代码:

import pikadef callback(ch, method, properties, body):print(f"收到消息: {body}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()channel.queue_declare(queue='hello')
channel.basic_consume(queue='hello',auto_ack=True,on_message_callback=callback)print('等待消息...')
channel.start_consuming()

4. 核心模式 \boxed{4.\ 核心模式} 4. 核心模式

Binding
Routing Key
Producer
Exchange
Queue1
Queue2
Consumer1
Consumer2

5. 常用场景 \boxed{5.\ 常用场景} 5. 常用场景

  1. 工作队列:分布式任务处理
  2. 发布/订阅:广播消息
  3. 路由模式:根据路由键定向消息
  4. 主题订阅:使用通配符匹配路由键

6. 管理工具 \boxed{6.\ 管理工具} 6. 管理工具

  • Web控制台:http://localhost:15672(默认账号guest/guest)
  • 命令行工具:
rabbitmqctl list_queues        # 查看队列
rabbitmqctl list_exchanges     # 查看交换机
rabbitmqctl list_bindings      # 查看绑定关系

注意事项 \boxed{注意事项} 注意事项

  1. 生产环境务必修改默认账号
  2. 消息持久化需要同时设置队列和消息属性
  3. 合理设置QoS防止消费者过载
  4. 使用确认机制保证消息可靠性

下一步建议:尝试不同的交换机类型(direct/topic/fanout/headers),实践消息确认机制,并探索集群部署方案。









RabbitMQ快速上手指南(含代码示例)

  1. 核心概念
  • 消息队列:应用间通信的中间件,实现 生产者 → 队列 → 消费者 生产者 \rightarrow 队列 \rightarrow 消费者 生产者队列消费者的异步模式
  • 核心组件:
    • 生产者(Producer):发送消息的程序
    • 消费者(Consumer):接收消息的程序
    • 队列(Queue):存储消息的缓冲区
    • 交换机(Exchange):消息路由组件
    • 绑定(Binding):连接交换机和队列的规则
  1. 安装步骤
# Ubuntu/Debian
sudo apt-get install erlang
sudo apt-get install rabbitmq-server# CentOS
sudo yum install erlang
sudo rpm -Uvh rabbitmq-server-*.rpm# macOS
brew install rabbitmq
  1. 基本使用(Python示例)
    (1) 安装客户端库
pip install pika

(2) 生产者代码

import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 创建队列
channel.queue_declare(queue='hello')# 发送消息
channel.basic_publish(exchange='',  # 使用默认交换机routing_key='hello',body='Hello RabbitMQ!'
)
connection.close()

(3) 消费者代码

import pikadef callback(ch, method, properties, body):print(f"收到消息: {body.decode()}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()channel.queue_declare(queue='hello')
channel.basic_consume(queue='hello',auto_ack=True,on_message_callback=callback
)print('等待消息...')
channel.start_consuming()
  1. 交换机类型
  • 直连交换机(Direct):精确路由
  • 扇出交换机(Fanout):广播模式
  • 主题交换机(Topic):模式匹配路由
  • 头交换机(Headers):基于消息头路由
  1. 管理界面
    访问地址:http://localhost:15672
    默认账号:guest / guest

小提示:

  1. 生产环境务必修改默认密码
  2. 消息持久化需设置delivery_mode=2
  3. 使用basic_ack实现消息确认
  4. 推荐使用连接池管理连接

常用客户端库:

  • Python: pika
  • Java: amqp-client
  • Node.js: amqplib
  • Go: amqp

典型应用场景:

  • 异步任务处理
  • 应用解耦
  • 流量削峰
  • 分布式系统通信









以下是快速上手RabbitMQ的详细步骤:

  1. 了解基础概念

    • 生产者(Producer):负责发送消息到RabbitMQ[1]。
    • 消费者(Consumer):从RabbitMQ接收消息[1]。
    • 交换机(Exchange):接收生产者的消息,并根据路由规则将消息转发到队列中[5]。
    • 队列(Queue):存储消息的容器,每个队列都有一个名称,消费者订阅特定的队列来获取消息[5]。
    • 虚拟主机(Virtual Host):用于逻辑上的隔离,一个Broker可以有多个虚拟主机,类似于MySQL中的不同数据库[1]。
  2. 安装RabbitMQ

    • 下载:访问RabbitMQ官方网站,根据您的操作系统选择合适的版本进行下载。
    • 安装依赖环境:RabbitMQ是基于Erlang语言开发的,因此需要先安装Erlang环境。不同版本的RabbitMQ需要的Erlang版本可能不同,请参考官方文档进行选择和安装。
    • 安装RabbitMQ:运行下载的安装包,按照提示完成安装。安装完成后,可以通过命令行或服务管理器启动RabbitMQ服务。
  3. 配置RabbitMQ

    • 管理插件:RabbitMQ提供了一个管理插件,可以通过Web界面进行管理和监控。默认情况下,这个插件是关闭的,需要在命令行中启用它。例如,在Windows系统中,可以在命令行中输入rabbitmq-plugins enable rabbitmq_management来启用管理插件[4]。
    • 创建用户和虚拟主机:为了安全起见,可以创建新的用户和虚拟主机,并为不同的用户分配不同的权限。使用rabbitmqctl命令可以添加用户、设置权限等。例如,添加一个新用户的命令为rabbitmqctl add_user username password,将用户添加到虚拟主机的命令为rabbitmqctl set_permissions -p /username ".*" ".*" ".*"
  4. 编写代码

    • 生产者代码示例
      • 建立连接:使用ConnectionFactory类创建一个与RabbitMQ的连接[1]。
      • 创建通道:通过连接创建一个通道,所有的操作都在通道上进行[1]。
      • 声明队列:指定要发送消息的队列名称,如果队列不存在则创建[1]。
      • 发送消息:将消息发送到指定的队列中。
      • 关闭连接:消息发送完成后,关闭通道和连接[1]。
    • 消费者代码示例
      • 建立连接和通道:与生产者类似,首先建立与RabbitMQ的连接和通道[1]。
      • 订阅队列:告诉RabbitMQ想要接收哪个队列的消息[1]。
      • 接收消息:等待并接收消息,当有消息到达时,会自动调用回调函数进行处理[1]。
      • 关闭连接:处理完消息后,关闭通道和连接[1]。

总之,以上步骤可以帮助你快速上手RabbitMQ,但RabbitMQ是一个功能强大且复杂的消息中间件,要想深入掌握其原理和应用,还需要进一步学习和实践。









RabbitMQ是一款流行的开源消息中间件,它支持多种消息传递模式,能够实现应用程序之间的异步通信、解耦和流量削峰等功能。以下是快速上手RabbitMQ的步骤:

  1. 了解基本概念

    • 生产者(Producer):负责发送消息到RabbitMQ的客户端[2]。
    • 消费者(Consumer):从RabbitMQ接收消息的客户端[2]。
    • 交换机(Exchange):接收生产者的消息,并根据路由规则将消息转发到不同的队列[2]。
    • 队列(Queue):存储消息的容器,等待消费者消费[2]。
    • 虚拟主机(Virtual Host):用于逻辑上的隔离,每个虚拟主机可以有多个队列、交换机和用户[2]。
  2. 安装RabbitMQ

    • 下载并安装Erlang环境:RabbitMQ基于Erlang语言开发,需要先安装Erlang环境[1][3]。
    • 下载安装包并启动服务:根据你的操作系统选择对应的安装包进行下载安装,然后启动RabbitMQ服务[1][3]。
    • 启用管理插件:通过命令行启用RabbitMQ的管理插件,以便通过Web界面进行管理[1][3]。
  3. 创建项目并引入依赖

    • 在IDE(如IntelliJ IDEA)中创建一个新的Maven或Gradle项目[1][4]。
    • 在项目的pom.xmlbuild.gradle文件中添加RabbitMQ的客户端依赖[1][4]。
  4. 编写代码

    • 建立连接:使用ConnectionFactory类创建与RabbitMQ的连接[2]。
    • 创建通道:通过连接创建一个通道,所有操作都在通道上完成[2]。
    • 声明队列:指定要发送或接收消息的队列名称,如果队列不存在则创建[2]。
    • 发送消息:生产者通过通道将消息发布到指定的队列[2]。
    • 接收消息:消费者通过通道订阅队列并接收消息[2]。
  5. 运行和测试

    • 启动RabbitMQ服务和你的应用程序[1]。
    • 运行生产者代码,观察消息是否成功发送到队列[1]。
    • 运行消费者代码,检查是否能正确接收并处理消息[1]。

总的来说,通过以上步骤,你应该能够快速上手RabbitMQ,并在实际应用中发挥其强大的消息中间件功能。不断实践和深入学习,你将能更好地利用RabbitMQ解决复杂的消息通信问题。









以下是快速上手RabbitMQ的分步指南,结合核心概念、环境搭建和基础代码实现,帮助开发者快速掌握基本用法:

一、环境安装与配置

  1. 安装Erlang环境
    RabbitMQ基于Erlang开发,需先安装Erlang:

    • Windows:从Erlang官网下载安装包直接运行
    • Linux(Ubuntu)sudo apt-get install erlang
    • MacOSbrew install erlang
  2. 安装RabbitMQ服务

    • Docker方式(推荐)
      docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
      
    • 原生安装
      从官网下载对应系统的安装包,完成后启动服务
  3. 启用管理插件
    执行命令启用Web管理界面:

    rabbitmq-plugins enable rabbitmq_management
    

    访问http://localhost:15672,默认账号guest/guest


二、核心概念快速理解

  1. 生产者(Producer):发送消息到交换机的客户端
  2. 消费者(Consumer):从队列接收消息的客户端
  3. 交换机(Exchange):接收消息并路由到队列,支持4种类型:
    • Direct:精确匹配Routing Key
    • Fanout:广播到所有绑定队列
    • Topic:通配符匹配Routing Key
    • Headers:基于消息头匹配
  4. 队列(Queue):存储消息的缓冲区,具有FIFO特性
  5. 绑定(Binding):定义交换机与队列的路由规则

三、Java客户端基础开发

  1. 添加依赖

    <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.9.0</version>
    </dependency>
    
  2. 创建连接工具类

    public class RabbitmqUtils {private static ConnectionFactory factory = new ConnectionFactory();static {factory.setHost("localhost");factory.setPort(5672);factory.setUsername("guest");factory.setPassword("guest");factory.setVirtualHost("/");}public static Connection getConnection() throws Exception {return factory.newConnection();}
    }
    
  3. 生产者发送消息

    try (Connection conn = RabbitmqUtils.getConnection();Channel channel = conn.createChannel()) {channel.queueDeclare("test_queue", true, false, false, null);channel.basicPublish("", "test_queue", null, "Hello RabbitMQ".getBytes());
    }
    
  4. 消费者接收消息

    try (Connection conn = RabbitmqUtils.getConnection();Channel channel = conn.createChannel()) {channel.basicConsume("test_queue", true, (consumerTag, message) -> {System.out.println("收到消息:" + new String(message.getBody()));}, consumerTag -> {});Thread.sleep(10000); // 保持监听
    }
    

四、关键注意事项

  1. 消息可靠性

    • 开启消息持久化:queueDeclare(..., true, ...)
    • 生产者开启Confirm模式确认消息到达Broker
    • 消费者关闭自动ACK,处理完成后手动确认
  2. 性能优化

    • 单Connection多Channel复用TCP连接
    • 预取数量设置:channel.basicQos(10)
    • 批量消息确认机制
  3. 常见问题处理

    • 消息堆积:增加消费者或设置TTL过期时间
    • 连接失败:检查防火墙是否开放5672端口
    • 权限问题:通过rabbitmqctl创建新用户并授权

五、进阶学习路径

  1. Spring Boot整合
    使用spring-boot-starter-amqp简化配置,通过@RabbitListener注解实现监听

  2. 高级特性实践

    • 延迟队列(需安装插件)
    • 死信队列(DLX)处理失败消息
    • 集群搭建与镜像队列
  3. 监控管理

    • 通过管理界面查看队列深度、消息速率
    • 集成Prometheus+Grafana实现可视化监控

通过以上步骤可快速实现基础消息收发,建议配合官方文档和Web管理界面进行实践验证。若需完整代码示例,可参考网页提供的工具类和示例代码。









以下是快速上手RabbitMQ的步骤指南,结合最新实践整理:

一、环境配置

  1. 安装RabbitMQ

    • Docker快速部署(推荐):
      docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
      
      访问管理界面:http://localhost:15672,默认账号密码guest/guest
    • Linux/Windows安装
      参考官方网页或通过包管理器安装,需提前配置Erlang环境。
  2. 启用管理插件

    rabbitmq-plugins enable rabbitmq_management
    

    提供可视化监控界面。


二、核心概念

  1. 核心组件

    • Producer:消息生产者,发送消息到Exchange。
    • Consumer:消息消费者,从Queue接收消息。
    • Exchange:根据路由规则分发消息到Queue,支持4种类型(direct、topic、fanout、headers)。
    • Queue:存储消息的缓冲区,支持持久化(durable=true)防止数据丢失。
  2. 关键机制

    • 持久化:设置队列和消息的durable属性。
    • 确认机制:消费者手动发送ACK确认消息处理完成。

三、消息发送与接收

  1. 生产者代码示例(Java)

    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    try (Connection connection = factory.newConnection();Channel channel = connection.createChannel()) {channel.queueDeclare("hello", false, false, false, null);String message = "Hello World!";channel.basicPublish("", "hello", null, message.getBytes());System.out.println(" [x] Sent '" + message + "'");
    }
    

    引用依赖:com.rabbitmq:amqp-client

  2. 消费者代码示例(Java)

    channel.queueDeclare("hello", false, false, false, null);
    DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), StandardCharsets.UTF_8);System.out.println(" [x] Received '" + message + "'");
    };
    channel.basicConsume("hello", true, deliverCallback, consumerTag -> { });
    

    支持手动ACK模式确保可靠性。


四、应用场景示例

  1. 异步处理
    用户注册后发送欢迎邮件:

    // 生产者
    rabbitTemplate.convertAndSend("user.register.exchange", "user.register", userDTO);
    // 消费者
    @RabbitListener(queues = "user.register.queue")
    public void handleUserRegister(UserDTO user) {emailService.sendWelcomeEmail(user.getEmail());
    }
    

    引用Spring AMQP简化开发。

  2. 流量削峰
    限制消费者并发数:

    spring:rabbitmq:listener:simple:concurrency: 5max-concurrency: 20
    

    适用于秒杀场景。


五、常见问题解决

  1. 消息丢失

    • 生产者:开启Confirm模式确认消息到达Broker。
    • Broker:设置队列和消息持久化。
    • 消费者:关闭自动ACK,手动确认处理完成。
  2. 队列监控
    通过管理界面查看队列深度、消息速率,或集成Prometheus+Grafana实现告警。


通过以上步骤,可快速搭建RabbitMQ基础环境并实现消息的发送与消费。进阶学习可参考尚硅谷新版教程(B站链接)或官方网页。









以下是RabbitMQ的快速上手指南,结合最新实践整理:

一、环境安装

  1. Docker快速部署(推荐)
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

访问管理界面:http://localhost:15672(默认账号密码guest/guest

  1. Linux系统安装
# 安装Erlang环境(需匹配RabbitMQ版本)
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.11/erlang-23.3.4.11-1.el7.x86_64.rpm
rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm# 安装RabbitMQ
rpm -ivh rabbitmq-server-3.9.16-1.el7.noarch.rpm
systemctl enable rabbitmq-server
systemctl start rabbitmq-server

启用管理插件:

rabbitmq-plugins enable rabbitmq_management

二、核心概念

  1. 组件说明
  • Producer:消息生产者(发送至Exchange)
  • Consumer:消息消费者(从Queue订阅)
  • Exchange:路由规则(支持direct/topic/fanout/headers四种类型)
  • Queue:消息存储缓冲区(需设置durable属性实现持久化)
  1. 关键机制
  • 持久化:队列/消息设置durable=true
  • 确认机制:消费者手动ACK确保处理完成
  • TTL:消息/队列过期时间设置

三、Java实战示例

1. 异步发送消息
// 生产者
rabbitTemplate.convertAndSend("exchange", "routingKey", message);// 消费者
@RabbitListener(queues = "queueName")
public void handleMessage(Message message) {// 处理逻辑
}
2. 延迟队列实现
// 定义延迟交换机
@Bean
public CustomExchange delayedExchange() {Map<String, Object> args = new HashMap<>();args.put("x-delayed-type", "direct");return new CustomExchange("delayedExchange", "x-delayed-message", true, false, args);
}// 发送延迟消息
MessageProperties props = new MessageProperties();
props.setDelay(60000); // 60秒延迟
rabbitTemplate.send("delayedExchange", "routingKey", new Message("data".getBytes(), props));

四、监控与管理

  1. 管理界面
  • 查看队列深度、消息速率、连接状态
  • 配置用户权限:rabbitmqctl set_permissions -p /admin ".*" ".*" ".*"
  1. 集成监控
  • Prometheus+Grafana:监控指标包括rabbitmq_queue_messages_ready(待消费消息数)
  • Spring Boot Actuator:暴露/actuator/rabbitmq端点

五、常见问题解决

  1. 消息丢失
  • 生产者:开启Confirm模式
  • Broker:队列/消息持久化
  • 消费者:关闭自动ACK,手动确认
  1. 连接超时
  • 检查防火墙是否放行5672/15672端口
  • 确认Erlang Cookie一致性(集群环境)

通过以上步骤,可快速搭建RabbitMQ基础环境并实现消息的异步处理。进阶学习可参考尚硅谷新版教程(含集群搭建与流式队列)。









以下是RabbitMQ快速上手的关键步骤和核心要点,结合最新技术实践整理而成:

一、环境安装(推荐Docker方式)

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
  • 5672端口用于AMQP协议通信
  • 15672端口提供Web管理界面(默认账号:guest/guest)
  • 其他安装方式:
    • Windows:choco install rabbitmq
    • Ubuntu:sudo apt-get install rabbitmq-server

二、核心概念速览

  1. 生产者(Producer):发送消息到Exchange
  2. 交换机(Exchange):消息路由中心,支持4种类型:
    • Direct(精准匹配路由键)
    • Topic(通配符匹配)
    • Fanout(广播)
    • Headers(头信息匹配)
  3. 队列(Queue):消息存储缓冲区
  4. 消费者(Consumer):从队列订阅消息
  5. 绑定(Binding):定义Exchange与Queue的路由规则

三、Java快速入门(Spring Boot示例)

  1. 添加依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  1. 生产者代码:
@Autowired
private RabbitTemplate rabbitTemplate;public void sendMessage() {rabbitTemplate.convertAndSend("exchange.demo",  // 交换机名称"routing.key",    // 路由键"Hello RabbitMQ!"// 消息内容);
}
  1. 消费者代码:
@RabbitListener(queues = "queue.demo")
public void receiveMessage(String message) {System.out.println("Received: " + message);
}

四、基础工作模式

  1. 简单队列:单生产者-单消费者
  2. 工作队列:多消费者竞争消费
  3. 发布订阅:Fanout交换机广播消息
  4. 路由模式:Direct交换机精准路由
  5. 主题模式:Topic交换机通配符匹配

五、关键配置建议

  1. 消息持久化
// 队列声明时设置
channel.queueDeclare("queue", true, false, false, null);
// 消息发送时设置
MessageProperties props = new MessageProperties();
props.setDeliveryMode(MessageDeliveryMode.PERSISTENT);
  1. 确认机制
spring:rabbitmq:publisher-confirm-type: correlated # 生产者确认listener:simple:acknowledge-mode: manual     # 消费者手动ACK

六、管理监控

  1. 访问http://localhost:15672查看:
    • 队列深度监控
    • 消息吞吐量统计
    • 连接/通道状态
  2. 集成Spring Boot Actuator:
management:endpoints:web:exposure:include: rabbit

七、常见问题解决

  1. 消息丢失

    • 启用生产者确认模式
    • 队列/消息持久化
    • 消费者手动ACK
  2. 消息堆积

    • 增加消费者并发数
    • 设置消息TTL过期时间
    • 使用惰性队列(Lazy Queue)

提示:建议从简单队列模式开始实践,逐步过渡到主题路由等复杂场景。对于延迟消息需求,需要安装rabbitmq_delayed_message_exchange插件。开发环境推荐使用Docker部署,生产环境需配置集群和高可用方案。









要快速上手RabbitMQ,可按以下步骤操作:

  1. 核心概念

    • 生产者(Producer):发送消息的程序
    • 消费者(Consumer):接收消息的程序
    • 队列(Queue):存储消息的缓冲区
    • 交换机(Exchange):路由消息到队列
    • 绑定(Binding):连接交换机和队列的规则
  2. 安装

    # 使用Docker快速启动
    docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
    

    管理界面:http://localhost:15672(账号/密码:guest/guest)

  3. Python示例(使用pika库)

    pip install pika
    

    生产者代码

    import pika
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hello')
    channel.basic_publish(exchange='', routing_key='hello', body='Hello RabbitMQ!')
    connection.close()
    

    消费者代码

    import pika
    def callback(ch, method, properties, body):print(f"收到消息: {body.decode()}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hello')
    channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
    channel.start_consuming()
    
  4. 常用操作

    • 创建交换机:channel.exchange_declare(exchange='logs', exchange_type='fanout')
    • 绑定队列:channel.queue_bind(exchange='logs', queue=queue_name)
    • 交换机类型:direct(精确匹配)、fanout(广播)、topic(模式匹配)
  5. 典型场景

    • 任务队列:分发耗时任务
    • 发布/订阅:广播系统事件
    • RPC调用:远程过程调用

建议从简单队列开始实践,逐步尝试不同交换机类型,通过管理界面观察消息流动状态。









以下是最简版RabbitMQ快速上手指南:

  1. 启动服务(Docker版)
docker run -d -p 5672:5672 -p 15672:15672 --name my_rabbitmq rabbitmq:management
  1. 登录管理台
    访问 http://localhost:15672
    账号:guest / 密码:guest

  2. 生产者代码(发送消息)

import pika
conn = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = conn.channel()
channel.queue_declare(queue='my_queue')
channel.basic_publish(exchange='', routing_key='my_queue', body='Hello!')
conn.close()
  1. 消费者代码(接收消息)
import pika
def receive(ch, method, properties, body):print("收到:", body.decode())conn = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = conn.channel()
channel.basic_consume(queue='my_queue', on_message_callback=receive, auto_ack=True)
channel.start_consuming()
  1. 验证流程
  • 先运行消费者程序(持续监听)
  • 再运行生产者程序
  • 观察消费者终端输出和管理界面的队列状态

附:核心概念速记

  • 消息通过交换机路由到队列
  • 三种常用交换机:
    ▶ direct:精准匹配路由键
    ▶ fanout:广播到所有绑定队列
    ▶ topic:模式匹配路由键(如:*.error)

先完成这个基础流程,后续再深入学习消息持久化、ACK机制等高级特性。









以下是 RabbitMQ 的快速入门指南,帮助你快速掌握基本用法:


1. 核心概念

  • Producer:消息生产者,发送消息到 RabbitMQ
  • Consumer:消息消费者,从队列接收消息
  • Exchange:消息路由组件,决定消息如何分发到队列
  • Queue:消息队列,存储待消费的消息
  • Binding:交换机和队列之间的绑定规则

2. 安装 RabbitMQ

使用 Docker(推荐):
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
  • 访问管理界面:http://localhost:15672 (默认账号: guest/guest)
Ubuntu 安装:
sudo apt-get install rabbitmq-server
sudo systemctl start rabbitmq-server

3. 快速示例(Python)

安装依赖:
pip install pika
生产者(发送消息):
import pika# 连接 RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()# 创建队列(如果不存在)
channel.queue_declare(queue='hello')# 发送消息
channel.basic_publish(exchange='',routing_key='hello',body='Hello RabbitMQ!')
print(" [x] Sent 'Hello RabbitMQ!'")connection.close()
消费者(接收消息):
import pikadef callback(ch, method, properties, body):print(f" [x] Received {body}")connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()channel.queue_declare(queue='hello')# 监听队列
channel.basic_consume(queue='hello',auto_ack=True,on_message_callback=callback)print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

4. 常用工作模式

1. Hello World(简单队列)
  • 一个生产者 → 一个队列 → 一个消费者
2. Work Queue(工作队列)
  • 一个生产者 → 一个队列 → 多个消费者(竞争消费)
  • 使用 channel.basic_qos(prefetch_count=1) 实现公平分发

5. 常见问题

  1. 连接失败:检查 RabbitMQ 服务是否运行,端口 5672 是否开放
  2. 权限问题:检查用户名/密码(默认 guest/guest
  3. 消息未消费:确认消费者是否正确绑定队列,auto_ack 是否设置为 True

6. 进阶学习

  • 交换器类型:Direct、Fanout、Topic、Headers
  • 消息确认机制:手动 ACK(auto_ack=False + ch.basic_ack()
  • 持久化:队列和消息的持久化设置

资源推荐

  • 官方文档:https://www.rabbitmq.com/documentation.html
  • RabbitMQ in Action(书籍)
  • 管理界面:查看队列状态、消息统计等实时信息

通过以上步骤,你可以在 10 分钟内完成 RabbitMQ 的初体验!后续可深入探索不同消息模式的高级用法。








































相关文章:

如何快速上手RabbitMQ 笔记250304

如何快速上手RabbitMQ 要快速上手 RabbitMQ&#xff0c;可以按照以下步骤进行&#xff0c;从安装到基本使用逐步掌握核心概念和操作&#xff1a; 1. 理解核心概念 Producer&#xff08;生产者&#xff09;&#xff1a;发送消息的程序。Consumer&#xff08;消费者&#xff09…...

无人机端部署 AI 模型,实现实时数据处理和决策

在无人机端部署 AI 模型&#xff0c;实现实时数据处理和决策&#xff0c;是提升无人机智能化水平的关键技术之一。通过将 AI 模型部署到无人机上&#xff0c;可以实现实时目标检测、路径规划、避障等功能。以下是实现这一目标的详细方案和代码示例。 一、实现方案 1. 硬件选择…...

CentOS 7中安装Dify

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等&#xff0c;让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时&#xff0c;会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...

CoDrivingLLM

CoDrivingLLM 思路 1.输入和输出 输入 算法的输入包括车辆当前时刻的状态 S t S_t St​ &#xff0c;这个状态包含了车辆的位置、速度、行驶方向等信息&#xff1b;以及参与协同驾驶的联网自动驾驶汽车列表C&#xff0c;用于确定需要进行决策的车辆集合。 输出 输出为车辆…...

Centos7升级openssl和openssh最新版

1、事前准备 下载openssl3.4.1和openssh9.9p2压缩包上传到服务器 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable// Release OpenSSL 3.4.1 openssl/openssl GitHub 2、查看centos7、ssh以及openssl的版本信息 # 查看CentOS系统版本信息 cat /etc/redhat-release …...

相控阵扫盲

下图展示天线增益 在仰角为0度的情况下随着方位角的变化而变化。需要注意到的是在天线视轴方向上的高增益主瓣上还有几个低增益旁瓣 阵列因子乘以新的阵元方向图会形成指向性更强的波速...

nginx 配置 301跳转

HTTP 跳转到 HTTPS 将所有 HTTP 请求&#xff08;80 端口&#xff09;跳转到 HTTPS&#xff08;443 端口&#xff09;&#xff1a; server {listen 80;server_name example.com;# 跳转到 HTTPSreturn 301 https://$host$request_uri; }server {listen 443 ssl;server_name exa…...

开发环境搭建-03.后端环境搭建-使用Git进行版本控制

一.Git进行版本控制 我们对项目开发就会产生很多代码&#xff0c;我们需要有效的将这些代码管理起来&#xff0c;因此我们真正开发代码前需要把我们的Git环境搭建好。通过Git来管理我们项目的版本&#xff0c;进而实现版本控制。 首先我们使用Git创建本地仓库&#xff0c;然后…...

vivado 充分利用 IP 核

充分利用 IP 核 使用预先验证的 IP 核能够大幅减少设计和验证工作量&#xff0c;从而加速产品上市进程。如需了解更多有利用 IP 的信息&#xff0c;请参 阅以下资源&#xff1a; • 《 Vivado Design Suite 用户指南&#xff1a;采用 IP 进行设计》 (UG896) [ 参照 1…...

外盘农产品期货数据:历史高频分钟回测的分享下载20250305

外盘农产品期货数据&#xff1a;历史高频分钟回测的分享下载20250305 在国际期货市场中&#xff0c;历史分钟高频数据的作用不可小觑。这些数据以分钟为时间尺度&#xff0c;详细记录了期货合约的价格变动和交易量信息&#xff0c;为投资者提供了全面、深入的市场分析视角。通…...

计算机毕设-基于springboot的网上商城系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!

下载模型与数据 模型下载&#xff1a; huggingface&#xff1a; Qwen/Qwen2.5-7B-Instruct HF MirrorWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct 魔搭&a…...

【C++设计模式】第四篇:建造者模式(Builder)

注意&#xff1a;复现代码时&#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 分步骤构造复杂对象&#xff0c;实现灵活装配 1. 模式定义与用途 核心目标&#xff1a;将复杂对象的构建过程分离&#xff0c;使得同样的构建步骤可以创建不同的表示形式。 常见场景&am…...

【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理

华为w515麒麟芯片版&#xff0c;还有非麒麟芯片版本&#xff0c;是一款信创电脑&#xff0c;一般安装的UOS系统。 准备一个空U盘&#xff0c;先下载镜像文件及启动盘制作工具&#xff0c;连接如下&#xff1a; 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…...

VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。这部教程给大家讲解的内容有&#xff1a;跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…...

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存&#xff0c;保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端&#xff0c;也是一个服务器&#xff0c;是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…...

关于tresos Studio(EB)的MCAL配置之GPT

概念 GPT&#xff0c;全称General Purpose Timer&#xff0c;就是个通用定时器&#xff0c;取的名字奇怪了点。定时器是一定要的&#xff0c;要么提供给BSW去使用&#xff0c;要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…...

大学至今的反思与总结

现在是2025年的3月5日&#xff0c;我大三下学期。 自大学伊始&#xff0c;我便以考研作为自己的目标&#xff0c;有时还会做自己考研上岸头部985,211&#xff0c;offer如潮水般涌来的美梦。 但是我却忽略了一点&#xff0c;即便我早早下定了决心去考研&#xff0c;但并没有早…...

我们来学nginx -- 优化下游响应速度

优化下游响应速度 题记启用 Gzip 压缩优化缓冲区设置设置超时时间 题记 专家给出的配置文件真是…&#xff0c;信息量有点大啊&#xff01; nginx&#xff1a;我只想作为一个简单的代理专家爸爸&#xff1a;都是为了你好&#xff01; 这样&#xff0c;先从有关响应速度的角度&…...

国内外优秀AI外呼产品推荐

在数字化转型浪潮中&#xff0c;AI外呼系统凭借其高效率、低成本、精准交互的特点&#xff0c;成为企业客户触达与服务的核心工具。本文基于行业实践与技术测评&#xff0c;推荐国内外表现突出的AI外呼产品&#xff0c;重点解析国内标杆企业云蝠智能&#xff0c;并对比其他代表…...

观察者模式的C++实现示例

核心思想 观察者模式是一种行为型设计模式&#xff0c;定义了对象之间的一对多依赖关系。当一个对象&#xff08;称为Subject&#xff0c;主题&#xff09;的状态发生改变时&#xff0c;所有依赖于它的对象&#xff08;称为Observer&#xff0c;观察者&#xff09;都会自动收到…...

爬虫(持续更新ing)

爬虫&#xff08;持续更新ing&#xff09; # 网络请求 # url统一资源定位符&#xff08;如&#xff1a;https://www.baidu.com&#xff09; # 请求过程&#xff1a;客户端的web浏览器向服务器发起请求 # 请求又分为四部分&#xff1a;请求网址&#xff0c;请求方法&#xff08…...

AD学习-最小系统板,双层

第一章 简单电阻容模型的创建 捕捉栅格在摆放器件时&#xff0c;一般设置成 10mil。移动器件时一般设置成100mil。 比如绘制电容的原理图库&#xff0c;直接就是两根线条竖着成电容&#xff0c; 按Tab键进行颜色变更&#xff0c;按shift键拖动会复制一个出来。 …...

自动驾驶---不依赖地图的大模型轨迹预测

1 前言 早期传统自动驾驶方案通常依赖高精地图&#xff08;HD Map&#xff09;提供道路结构、车道线、交通规则等信息&#xff0c;可参考博客《自动驾驶---方案从有图迈进无图》&#xff0c;本质上还是存在问题&#xff1a; 数据依赖性高&#xff1a;地图构建成本昂贵&#xf…...

【五.LangChain技术与应用】【8.LangChain提示词模板基础:从入门到精通】

早上八点,你端着咖啡打开IDE,老板刚甩来需求:“做个能自动生成产品描述的AI工具”。你自信满满地打开ChatGPT的API文档,结果半小时后对着满屏的"输出结果不稳定"、"格式总出错"抓耳挠腮——这时候你真需要好好认识下LangChain里的提示词模板了。 一、…...

【AGI】智谱开源2025:一场AI技术民主化的革命正在到来

智谱开源2025&#xff1a;一场AI技术民主化的革命正在到来 引言&#xff1a;开源&#xff0c;一场技术平权的革命一、CogView4&#xff1a;中文AI生成的里程碑1. 破解汉字生成的“AI魔咒”2. 开源协议与生态赋能 二、AutoGLM&#xff1a;人机交互的范式跃迁1. 自然语言驱动的跨…...

Markdown HTML 图像语法

插入图片 Markdown ![图片描述](图片链接)一般来说&#xff0c;直接复制粘贴过来就行了&#xff0c;部分网页/应用可以拖拽&#xff0c;没人会真敲图片的链接吧…… 示例图片&#xff1a; ![Creeper?](https://i-blog.csdnimg.cn/direct/f5031c8c4f15421c9882d7eb23540b8…...

DeepSeek 角色设定与风格控制

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

国产化替换案例:CACTER邮件网关为Groupwise系统加固邮件安全防线

电子邮件作为企业信息流转的命脉&#xff0c;承载着商业机密与客户数据。然而&#xff0c;网络攻击手段日益复杂&#xff0c;钓鱼邮件等威胁正快速侵蚀企业安全防线。据《2024年第四季度企业邮箱安全性研究报告》显示&#xff0c;2024年Q4企业邮箱用户遭遇的钓鱼邮件数量激增至…...

Element UI-Select选择器结合树形控件终极版

Element UI Select选择器控件结合树形控件实现单选和多选&#xff0c;并且通过v-model的方式实现节点的双向绑定&#xff0c;封装成vue组件&#xff0c;文件名为electricity-meter-tree.vue&#xff0c;其代码如下&#xff1a; <template><div><el-select:valu…...