RabbitMq安装与测试教程
I. 安装
123456789
brew install rabbitmq
启动控制台之前需要先开启插件
1
./rabbitmq-plugins enable rabbitmq_management
进入控制台: http://localhost:15672/
用户名和密码: guest,guest
II. 配置与测试
1. 添加账号
首先是得启动mq
123456
## 添加账号./rabbitmqctl add_user admin admin
2. 编码实测
pom引入依赖
1234
<dependency>
<groupId>com.rabbitmqgroupId>
<artifactId>amqp-clientartifactId>
dependency>
开始写代码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
public class RabbitMqTest {
需要注意的一点是:
- 生产消息:
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
- 消费消息:
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
- 生产和消费都声明channel,要求两者的配置参数一致,否则无法消费数据
3. 输出说明
首先执行塞入数据,执行完毕之后,可以到控制台进行查看:
可以看到多出了一个Queue,对列名为hello,总共有10条数据
接下来就是消费数据了,执行consumer方法,输出日志
123456789101112131415161718192021
[*] Waiting for message. To exist press CTRL+C [x] Received 'Hello World RabbitMQ count: 0 [x] Done [x] Received 'Hello World RabbitMQ count: 1 [x] Done [x] Received 'Hello World RabbitMQ count: 2 [x] Done [x] Received 'Hello World RabbitMQ count: 3 [x] Done [x] Received 'Hello World RabbitMQ count: 4 [x] Done [x] Received 'Hello World RabbitMQ count: 5 [x] Done [x] Received 'Hello World RabbitMQ count: 6 [x] Done [x] Received 'Hello World RabbitMQ count: 7 [x] Done [x] Received 'Hello World RabbitMQ count: 8 [x] Done [x] Received 'Hello World RabbitMQ count: 9 [x] Done
回头去查看queue,发现总得数据量为0了
4. ACK问题
对于ack的问题,如果在消费数据的时候,出现异常,而我不希望数据丢失,这个时候就需要考虑手动ack的机制来保证了
首先需要设置手动ack
12
// 设置autoAck为falsechannel.basicConsume(QUEUE_NAME, false, consumer);
其次在消费数据完毕之后,主动ack/nack
12345
if (success) { channel.basicAck(envelope.getDeliveryTag(), false);} else { channel.basicNack(envelope.getDeliveryTag(), false, false);}
https://www.cnblogs.com/jasonLiu2018/p/12927512.html
连接的失败报错:RabbitMQ Exception (403) Reason: “no access to this vhost”
因为没有配置该用户的访问权限,可以通过
rabbitmqctl add_vhost admin
来添加,并赋予权限:
rabbitmqctl set_permissions -p admin 用户名 “.” “.” “.*”
代码在连接的时候,必须制定对应的vhost,否则是没有访问权限:
conn, err := amqp.Dial(“”)
Original: https://www.cnblogs.com/rxbook/p/16108182.html
Author: 浮.尘
Title: Mac环境下RabbitMq安装与测试教程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540101/
转载文章受原作者版权保护。转载请注明原作者出处!