1. 安装 RabbitMQ
1.1 安装 Erlang
RabbitMQ 是基于 Erlang 语言开发的,因此首先需要安装 Erlang。
在 Ubuntu 上安装 Erlang:
bash
sudo apt-get update sudo apt-get install erlang
在 CentOS 上安装 Erlang:
bash
sudo yum install epel-release sudo yum install erlang
1.2 安装 RabbitMQ
在 Ubuntu 上安装 RabbitMQ:
bash
sudo apt-get update sudo apt-get install rabbitmq-server
在 CentOS 上安装 RabbitMQ:
bash
sudo yum install rabbitmq-server
1.3 启动和启用 RabbitMQ 服务
bash
sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server
2. 配置 RabbitMQ
2.1 启用管理插件
RabbitMQ 提供了一个 Web 管理界面,可以通过启用管理插件来访问。
bash
sudo rabbitmq-plugins enable rabbitmq_management
启动后,可以通过浏览器访问 http://<服务器IP>:15672
,默认用户名和密码都是 guest
。
2.2 创建用户和权限
为了安全起见,建议创建一个新的用户并分配权限。
bash
sudo rabbitmqctl add_user myuser mypassword sudo rabbitmqctl set_user_tags myuser administrator sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
3. 使用 RabbitMQ
3.1 安装客户端库
在 JavaScript 中,可以使用 amqplib
库来连接和操作 RabbitMQ。
安装 amqplib:
bash
npm install amqplib
3.2 发布消息
以下是一个简单的示例,展示如何使用 amqplib
发布消息。
发送者 (sender.js):
javascript
const amqp = require('amqplib'); async function sendMsg() { try { const connection = await amqp.connect('amqp://myuser:mypassword@localhost:5672'); const channel = await connection.createChannel(); const queue = 'hello'; await channel.assertQueue(queue, { durable: false }); const msg = 'Hello World!'; channel.sendToQueue(queue, Buffer.from(msg)); console.log(` [x] Sent ${msg}`); setTimeout(() => { connection.close(); process.exit(0); }, 500); } catch (err) { console.error(err); } } sendMsg();
3.3 接收消息
以下是一个简单的示例,展示如何使用 amqplib
接收消息。
接收者 (receiver.js):
javascript
const amqp = require('amqplib'); async function receiveMsg() { try { const connection = await amqp.connect('amqp://myuser:mypassword@localhost:5672'); const channel = await connection.createChannel(); const queue = 'hello'; await channel.assertQueue(queue, { durable: false }); console.log(' [*] Waiting for messages in %s. To exit press CTRL+C', queue); channel.consume(queue, (msg) => { if (msg !== null) { console.log(" [x] Received '%s'", msg.content.toString()); channel.ack(msg); } }); } catch (err) { console.error(err); } } receiveMsg();
4. 运行示例
4.1 启动接收者
在终端中运行接收者脚本:
bash
node receiver.js
4.2 发送消息
在另一个终端中运行发送者脚本:
bash
node sender.js
此时,接收者终端会显示接收到的消息。
总结
通过以上步骤,你可以成功安装、配置和使用 RabbitMQ。RabbitMQ 的强大功能和灵活性使其成为微服务架构中处理消息的首选中间件之一。希望这些示例能帮助你快速上手 RabbitMQ。