RabbitMQ -- 其他问题
  f45gpqkY1FKu 2023年11月25日 21 0
幂等性

用户对于同一操作发起的一次请求或多次请求的结果是不一致的,不会因为多次点击而产生了副作用。

消息被重复消费

解决思路:一般使用全局ID或者时间戳、UUID,判断此ID是否已经被消费过

  1. 唯一ID + 指纹码
  2. Redis原子性: 天然自带幂等性
优先级队列

订单催付:按客户大小判断是否优先处理

0-255 :越大越优先

// 队列代码中添加
val arguments = mapof("x-max-priority" to 10) 
// 消息代码中添加
val properties = AMQP.BasicProperties().builder().prioriry(5).build()

注意:队列需要先设置为优先级队列,消息需要设置消息的优先级,消费者需要等待消息已经发送到队列中去才消费,因为这样才有机会对消息进行排序

惰性队列

指的是消息的存放地,正常情况,消息是保存在内存中,但是在惰性队列中,消息是保存在磁盘上的。

积压消息过多,此时消费者宕机,惰性队列将其保存在磁盘上,不会造成占用系统内存过多。

队列有两种模式,defalut 和 lazy ;默认情况,使用正常队列

在声明队列处设置参数

val arguments = mapof("x-queue-mode" to "lazy")
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月25日 0

暂无评论

推荐阅读
f45gpqkY1FKu