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

做音乐的网站设计中国建设银行的网站特色

做音乐的网站设计,中国建设银行的网站特色,苏州市吴江区住房和城乡建设局网站,成都室内设计公司有哪些现象#xff1a;我发送5条消息到MQ队列中#xff0c;同时#xff0c;我在yml中设置的是需要在代码中手动确认#xff0c;但是我把代码中的手动ack给关闭了#xff0c;会出现什么情况#xff1f; yml中配置#xff0c;配置需要在代码中手动去确认消费者消费消息成功我发送5条消息到MQ队列中同时我在yml中设置的是需要在代码中手动确认但是我把代码中的手动ack给关闭了会出现什么情况 yml中配置配置需要在代码中手动去确认消费者消费消息成功 正常情况 需要在处理完消费的业务逻辑之后通过channel.basicAck(tag, false);来给MQ反馈消息已经被消费也就是手动ack 这种正常的情况表现为 我发送成功在postman中 其实被消费了已经所以ready的数目为0但是MQ还在等待ack回应我这里注释了所以在unacked这里会多一个 此时如果队列中有3条消息的话也就是ready中存在3条消息unacked中存在一条也就是total为4条那及时其他的消息我修改代码重新项目了把注释的手动ack给放开了那MQ中的情况也不会变因为如果在代码中设置了消费者需要需要手动ack的话如果一但存在了未ack的消息【unacked】的消息那ready中都不会被消费 spring:rabbitmq: listener: #这个在测试消费多个消息的时候不能有下面这些配置否则只能消费一个消息后就不继续消费了simple:acknowledge-mode: manual #指定MQ消费者的确认模式是手动确认模式 这个在消费者者模块配置 设置手动确认(ack)prefetch: 1 #一次只能消费一条消息 这个在消费者者模块配置有个文献中的解析如下 Rabbit 中的 channel.basicAck 注释掉只能消费掉一个消息吗 在 RabbitMQ 中当你使用手动消息确认(manual message acknowledgment)模式时 channel.basicAck 方法用于向 RabbitMQ 发送一个确认消息告知 RabbitMQ 某个消息已经被成功处理。如果你注释掉 channel.basicAck调用那么 RabbitMQ 将不会收到这个消息已经被处理的确认并且会根据你的消费者配置来决定如何处理这个消息。 具体行为取决于你的消费者配置中的 autoAck 参数(在某些客户端库中可能称为 noAck或其他名称) 1.如果 autoAck 被设置为 true (也就是不配置 acknowledge-mode: manual默认是自动ack ) 当你从队列中获取一个消息时RabbitMQ 会立即认为这个消息已经被处理并自动将其从队列中删除。在这种情况下即使你注释掉 channel.basicAckRabbitMQ也不会等待任何确认并且会继续发送下一个消息给消费者。因此你可以消费掉多个消息但请注意如果消费者在处理消息时失败并崩溃这些消息将会丢失(因为 RabbitMQ 认为它们已经被处理了)。 2.如果 autoAck 被为手动的话(yml中的 手动ack配置为手动 acknowledge-mode: manual) 当你从队列中获取一个消息时RabbitMQ 会等待消费者发送一个确认消息(即 channel.basicAck)。如果消费者注释掉了这个确认调用RabbitMQ将不会收到任何确认并且会根据你设置的 basicQos 方法中的 prefetchcount 参数来决定是否继续发送下一个消息。 如果 prefetch 大于 1RabbitMQ 可能会继续发送下一个消息给消费者但请注意消费者最多只会同时处理 prefetchcount个未确认的消息,如果 prefetch设置为1(或未设置因为默认可能是 0表示无限制但这不是推荐的做法)RabbitMQ 将只发送一个消息给消费者并等待该消息的确认。在这种情况下如果你注释掉了消费者将只能消费一个消息并且不会收到下一个消息直到你发送确认或关闭连channel.basicAck接。 总之是否只能消费一个消息取决于你的消费者配置(特别是 autoAck和 prefetch )。但是强烈建议在手动消息确认模式下使用 acknowledge-mode: manual和合理的 prefetch值以确保消息在处理失败时不会丢失并控制消费者同时处理的消息数量。 我遇到的问题现象 我在yml中是添加着需要手动ack的配置的 操作产生这个问题的过程 第一次消息将手动ack代码注释后产生了一个nacked的消息这样就出现了其实被消费成功了但是未被回应的一条消息注意这个条件 但是他未被回应 之后我将手动ack加上重启代码并向MQ中写入3条新的消息正常按照我们的理解的话这三天总应该都被消费了吧但是即使我现在加上了手动ack了但是由于第一条未ack的消息存在所以后面的消息也不回被消费产生了堵塞。现象如下遇到这种情况通过队列purg message也是无法去掉unacked中的消息的只能去掉ready中的消息我们该怎么将nacked中的消息去掉呢 **答案 ****在yml中注释掉手动ack的配置 这样重启项目后消息队列里积压的无论是ready或者unnack的消息都会被消费掉对于ready未被消费的被消费没问题但是对于之前消费成功了但是未被ack的不能轻易让他被消费掉因为我这是在自己实验的过程中在生产中可不能这样操作容易导致生产事故导致事务的重复消费除非你在自己的消费者端添加着“幂等性校验”也就是之前被消费成功的未ack的不允许重复消费的校验这总情况你可以拦住他所以可以这样搞否则的话不行特别注意这里** 我说的方法的实验效果 前提0个ready的1个unacked的一个total的注释配置并重启之后 console中正常被拦住了而且MQ队列中unacked的也没了 OK啦 实验结果
http://www.dnsts.com.cn/news/73481.html

相关文章:

  • 什么网站可以发布信息建设新农村网站
  • 湖州建设网站制作企业网站建站系统哪个好用
  • 建站哪个网站好石城县网站建设
  • 古香古色网站模板钱宝做任务的网站怎么下
  • 怎么做网站访问截取ip网站搭建接单
  • 腾讯云如何建设网站上海有限公司黄页
  • 上海专业网站建设机构商务网站建设 模板
  • 网站模版图片温州网站建设得花多少钱
  • 网站设计公司西安管理外贸网站模板下载
  • 石家庄住房城乡建设厅网站网站建设 赚钱吗
  • 郫县做网站网站开发代码说明书
  • 昆明网站建设外包猫扑网站开发的网络游戏
  • 泉州网站设计制作建筑行业
  • 营销型网站建设风格设定包括哪些方面?公司视频广告拍摄
  • 做网站哪家最便宜服务器做网站教程
  • 深圳数码网站建设企业黄页名单
  • 做网站流程营销网站建设专业公司
  • 东莞网站优化关键词推广网站后台 清理缓存
  • 杭州pc网站建设方案中国上海人才市场官网
  • wordpress企业站模板下载计科专业毕设做网站
  • dedecms5.7装饰网站模板青岛网站设计 网站建设
  • 《原始传奇》官方网站知乎的网站建设和网站运营
  • 天津高端网站建设制作怎么做推广
  • 电影片头在线制作网站wordpress 创建数据库文件
  • 宁夏建设厅网站官网电商网
  • 创建了网站重庆交通大学官网网站
  • 怎么网站搜索排名优化学电商美工一个月多少钱
  • 如何破解网站后台密码昌吉网站建设
  • 食品网站建设书网站制作公司有没有版权
  • 关于网站备案wordpress竖状导航