dyc87112 / blog-comments

5 stars 1 forks source link

Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ) | 程序猿DD #305

Open dyc87112 opened 5 years ago

dyc87112 commented 5 years ago

http://blog.didispace.com/spring-cloud-starter-finchley-7-5/

应用场景之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试功能:重新入队。 动手试试准备一个会消费失败的例子,可以直接沿用前文的工程,也可以新建一个,

lixian13149999 commented 5 years ago

我在使用 requeue-rejected 参数的时候, 一直不起作用. 消息中是被丢弃掉, 不知道是我哪里出错了, 希望能得到您的解答 yml 的配置内容入下

bindings:
  handler-dlq-topic-input:
    destination: stream.handler-dlq.topic
    group: group.handler-dlq
    # 消费配置
    consumer:
      # 最大尝试次数(总的执行次数)
      max-attempts: 2
rabbit:
  bindings:
    handler-dlq-topic-input:
      consumer:
        # 用来开启DLQ(死信队列)
        # 注意: 死信队列的开启需要在 rabbit 的配置中设置
        # 开启这个启动时会出错, 出现死信消息后会出现权限不足的异常消息, 暂时不知道什么原因
        # 队列中出现死信队列后, 可以通过 Rabbit 控制台的 Queues -> 对应的死信队列 -> Move Message 的方式再次恢复到正常队列中
        #auto-bind-dlq: true
        # 设置死信队列的发送
        #republish-to-dlq: true
        # 设置了此配置后, 系统会自动重复尝试
        # 此设置在测试中出现没能起到预期的效果, 抛出异常的消息一直被丢弃不知道什么原因
        requeue-rejected: true
samlaiGit commented 5 years ago

@lixian13149999 我在使用 requeue-rejected 参数的时候, 一直不起作用. 消息中是被丢弃掉, 不知道是我哪里出错了, 希望能得到您的解答 yml 的配置内容入下

bindings:
  handler-dlq-topic-input:
    destination: stream.handler-dlq.topic
    group: group.handler-dlq
    # 消费配置
    consumer:
      # 最大尝试次数(总的执行次数)
      max-attempts: 2
rabbit:
  bindings:
    handler-dlq-topic-input:
      consumer:
        # 用来开启DLQ(死信队列)
        # 注意: 死信队列的开启需要在 rabbit 的配置中设置
        # 开启这个启动时会出错, 出现死信消息后会出现权限不足的异常消息, 暂时不知道什么原因
        # 队列中出现死信队列后, 可以通过 Rabbit 控制台的 Queues -> 对应的死信队列 -> Move Message 的方式再次恢复到正常队列中
        #auto-bind-dlq: true
        # 设置死信队列的发送
        #republish-to-dlq: true
        # 设置了此配置后, 系统会自动重复尝试
        # 此设置在测试中出现没能起到预期的效果, 抛出异常的消息一直被丢弃不知道什么原因
        requeue-rejected: true

老哥解决了吗,我也遇到这个问题了

liudongdong0909 commented 5 years ago

@lixian13149999 我在使用 requeue-rejected 参数的时候, 一直不起作用. 消息中是被丢弃掉, 不知道是我哪里出错了, 希望能得到您的解答 yml 的配置内容入下

bindings:
  handler-dlq-topic-input:
    destination: stream.handler-dlq.topic
    group: group.handler-dlq
    # 消费配置
    consumer:
      # 最大尝试次数(总的执行次数)
      max-attempts: 2
rabbit:
  bindings:
    handler-dlq-topic-input:
      consumer:
        # 用来开启DLQ(死信队列)
        # 注意: 死信队列的开启需要在 rabbit 的配置中设置
        # 开启这个启动时会出错, 出现死信消息后会出现权限不足的异常消息, 暂时不知道什么原因
        # 队列中出现死信队列后, 可以通过 Rabbit 控制台的 Queues -> 对应的死信队列 -> Move Message 的方式再次恢复到正常队列中
        #auto-bind-dlq: true
        # 设置死信队列的发送
        #republish-to-dlq: true
        # 设置了此配置后, 系统会自动重复尝试
        # 此设置在测试中出现没能起到预期的效果, 抛出异常的消息一直被丢弃不知道什么原因
        requeue-rejected: true

max-attempts: 1

liudongdong0909 commented 5 years ago

@lixian13149999 max-attempts: 1