@@ -277,9 +277,9 @@ public long nextBackOff() {
277277```
278278那么这个 getMaxAttempts 的值又是多少呢?回到最开始,当执行出错会进入 DefaultErrorHandler 。DefaultErrorHandler 默认的构造函数是:
279279``` Java
280- public DefaultErrorHandler() {
281- this (null , SeekUtils . DEFAULT_BACK_OFF );
282- }
280+ public DefaultErrorHandler() {
281+ this (null , SeekUtils . DEFAULT_BACK_OFF );
282+ }
283283```
284284SeekUtils.DEFAULT_BACK_OFF 定义的是
285285``` Java
@@ -297,21 +297,21 @@ DEFAULT_MAX_FAILURES 的值是10,currentAttempts从0到9,所以总共会执
297297
298298spring kafka 中只需要加上 ` @DltHandler ` 注解即可将重试失败的消息推到死信队列,死信队列的topic是在原 topic 后加上 '.DLT'。然后开启新的消费者消费死信队列即可。
299299``` Java
300- @DltHandler
301- @KafkaListener (topics = {KafkaConst . TEST_TOPIC }, groupId = " apple" )
302- private void customer(String message) {
303- log. info(" kafka customer:{}" , message);
304- Integer n = Integer . parseInt(message);
305- if (n % 5 == 0 ) {
306- throw new RuntimeException ();
307- }
308- System . out. println(n);
309- }
300+ @DltHandler
301+ @KafkaListener (topics = {KafkaConst . TEST_TOPIC }, groupId = " apple" )
302+ private void customer(String message) {
303+ log. info(" kafka customer:{}" , message);
304+ Integer n = Integer . parseInt(message);
305+ if (n % 5 == 0 ) {
306+ throw new RuntimeException ();
307+ }
308+ System . out. println(n);
309+ }
310310
311- @KafkaListener (topics = {KafkaConst . TEST_TOPIC + " .DLT" }, groupId = " apple" )
312- private void delCustomer(String message) {
313- //
314- }
311+ @KafkaListener (topics = {KafkaConst . TEST_TOPIC + " .DLT" }, groupId = " apple" )
312+ private void delCustomer(String message) {
313+ //
314+ }
315315```
316316## 如何自定义重试次数,以及时间间隔
317317"......,未完待续。"
0 commit comments