rabitmq知识点

本文介绍了RabbitMQ的消息确认机制,强调了设置`autoack`为`false`的重要性,确保消息在异常情况下能正确处理。此外,详细阐述了Windows环境下RabbitMQ的安装步骤,包括环境变量配置、服务启动以及常用命令。还提到了启动时遇到的权限问题及解决方法,并提醒读者避免修改配置文件名称的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.服务提供方发送消息,消费方接受消息,其中有一个ack机制:服务提供方发送消息之后,当消费方消费的时候,如果在这个过程中发生了异常,autoack为true的时候,消息照常被消费,但消费方并未完成消息处理,因此,我们需要将autoack设置为false,这样在处理消息的过程中如果发生异常,消息会进入待处理中,即unack,过程结束之后rabitmp消息会进行回滚,消息重新回到消息队列中,方法如下:

//消息处理中手动进行ack    channel.basicAck(envelope.getdeliveryTag(),false)

//监听消息队列,第二个参数为fasle,手动进行ack

channel.basicConsume(QUEUE_NAME,fasle,consumer);

2.补充windows下安装的一些注意点:

安装没什么大问题,下载erlang.exe和rabbitmq.exe,双击一直下一步,erlang安装完之后系统会产生一个环境变量ERLANG_HOME:D:\java\erl10.2,rabbitmq的指令都需要再这个目录下运行D:\java\rabitmq\rabbitmq_server-3.7.9\sbin,目录栏输入cmd进入就可以输入命令了,有个需要注意的就是rabbitmq-service start需要用管理员身份开启cmd,再切到安装目录运行,显示--

请求的服务已经启动。

请键入 NET HELPMSG 2182 以获得更多的帮助。代表成功;

还有一些必要的指令:

启动监控管理器:rabbitmq-plugins enable rabbitmq_management

关闭监控管理器:rabbitmq-plugins disable rabbitmq_management

启动rabbitmq:rabbitmq-service start

关闭rabbitmq:rabbitmq-service stop

查看所有的队列:rabbitmqctl list_queues

清除所有的队列:rabbitmqctl reset

关闭应用:rabbitmqctl stop_app

启动应用:rabbitmqctl start_app

添加用户:rabbitmqctl add_user username password

分配角色:rabbitmqctl set_user_tags username administrator

分配的角色是没有访问权限的,no access,需要给角色分配权限,rabbitmqctl  set_permissions -p / yunchao '.*' '.*' '.*'这个解决方法也是尝试了好几次

3.程序启动报错:reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'test_work_queue' in vhost '/' refused for user '***', class-id=50, method-id=10

根据提示感觉应该是配置文件有问题,但是一直没改对,最后网上看到一个,直接在rabbitmq.config.example文件中修改配置--{tcp_listeners, [5672]},
  {loopback_users, ["***"]},

重点申明::::不需要修改文件名...不需要修改文件名,我就吃了修改文件名的亏,我上了rabbitmq中readme的当

In this directory you can find an example configuration file for RabbitMQ.

Note that this directory is *not* where the real RabbitMQ
configuration lives. The default location for the real configuration
file is %APPDATA%\RabbitMQ\rabbitmq.config.

它说这个目录不是真的配置文件的位置...我最终是直接在rabbitmq.config.example文件中配置之后重启,OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值