RabbitMQ
Mac 安装
-
brew install rabbitmq
(control + c 取消更新brew) -
安装RabiitMQ的可视化监控插件
// 切换到MQ目录,注意你的安装版本可能不是3.8.3 cd /usr/local/Cellar/rabbitmq/3.8.3/ // 启用rabbitmq management插件 sudo sbin/rabbitmq-plugins enable rabbitmq_management
-
设置环境变量。
open .bash_profile
, 添加export RABBITMQ_HOME=/usr/local/Cellar/rabbitmq/3.8.3 export PATH=$PATH:$RABBITMQ_HOME/sbin
完成后
source .bash_profile
-
sudo rabbitmq-server
(开启服务)
-
开启后在浏览器打开
http://localhost:15672/#/
初始用户、密码都是 guest 。
切换到 admin ,添加用户
-
其他操作:
- 关闭服务 :另开一个终端:
sudo rabbitmqctl stop
- 查看状态:
sudo rabbitmqctl status
- 关闭服务 :另开一个终端:
开始项目
-
初始化项目 jt init 。(如没有安装jt 工具,请查看 git )
-
修改 confing/config.default.js中的username、password
rabbitMQ: { protocol: 'amqp', host: 'localhost', port: 5672, username: 'guest', password: 'guest', vhost: '' },
-
在 RabbitMQ 中新建 Queue,名称为testQueue.
-
修改项目中 index_mq_stat.js中
sky.start(config, async () => { let res = await rtsMQ.send({text:'q2'}) console.log('rtsMQ',res); })
send():生产者发送信息的封装方法。
-
执行
nodemon index_mq_stat.js
,此时在 testQueue的已经用生产者发出数据
-
修改 rts_consumer.js 中的queueName为第三步设置的testQueue。
rtsMQ.rev({ noAck: false, // 默认false,true会自动 确认消费,会造成来不及消费就ack的情况 prefetch: 1, // 默认每次消费一条 cbFunc: consumerFunc, queueName: "testQueue", // 这是默认的,如果要动态请设置 相应环境的config文件 });
// 这边需要 处理data 和 channel=ch两个参数 async function consumerFunc(data, ch) { mqObj = data.content.toString() console.log("data===>", mqObj); ch.ack(data); return; }
-
项目中新开终端,执行 node rts_consumer.js。
-
此时查看RabbitMQ 中get message 的时候,显示empty。消费者已经消费完。