【RabbitMQ 队列的属性简介】

rabbitmq  

客户端队列的属性配置  

x-message-ttl   队列存活的时间, 超出时间后,删除或者进入其他的队列, 例如经私信交换机,进入死信的队列 

x-mar-length   限制队列的长度, 防止队列太长,持久导致存储挤压等问题, 少量的数据,多消费者,尽快的消费掉,使得mq 处于一个非常的健康状态,超过的数据,放不下,就会被拒绝或者进入死信队里,或者直接通过 生产者 的   confirim   模式 , 如果被拒绝了,一个时间窗口内被拒绝的太多, 就采取其他的处理方式, (例如,先将数据存储起来,过段时间,再重试, 或者重新入队重试的次数达到一定次数, 交给具体的客服人员处理 )

x-max-length-bytes   队列的最大容量

x-dead-letter-exchange   死信交换机   ,由于删除的数据 、过期的数据,超长的数据, 交给死信交换机 , 根据路由key  到 死信队列

x-dead-letter-routing-key

x-max-priorty  队列的有限机模式 

x-queue-mode   队列的模式   

-----

如果是rabbitmq 集群的模式, 可以设置,镜像队列 

x-ha-policy    指定 节点 n ode   或者   all  所有的节点上都要做镜像队列   指定队列是否需要将数据同步到其他的队列, 同步过去 ,即使现有的队列失败了, 也可以从数据从同步的镜像队列中获取。 

队列有偏移量参数的设置, 也可以从指定的队列的便宜位置, offset  

官方:  

AtomicInteger messageConsumed = new AtomicInteger(0);
Consumer consumer = environment.consumerBuilder()
    .stream("offset-tracking-stream") // the stream to consume from
    .offset(OffsetSpecification.first()) // start consuming at the beginning
    .name("my-application") // the name (reference) of the consumer
    .manualTrackingStrategy() // tracking is done in application code
    .builder()
    .messageHandler((context, message) -> {
        // ... message processing ...

        // condition to store the offset: every 10,000 messages
        if (messageConsumed.incrementAndGet() % 10_000 == 0) {
           context.storeOffset(); // store the message offset
        }
        // ... 
    })
    .build();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值