- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 5.12生产者如何处理超时的批次
这里肯定又要想到sender线程了,因为当时做处理过程概览的时候有一个步骤六,我们一直没有去分析,这个步骤当时说是放弃超时的batch,准确来说要在这里看一下是如何处理的。再来看一下 abortExpiredBatches方法,会发现如果消息有异常了也会对内存做相应的处理。这里要去看一下maybeExpire判断超时的一个标准。最后看到了熟悉的done方法,这次会走他的另一个分支。这里最终的思想还是交给用户自己去处理。我们跟进去看一下是如何处理的。
2023-03-15 10:47:19 112
原创 5.11消息有异常如何处理
最后如果真的是有一些消息带有异常导致无法正常发送,我们也不能放任不管,这样就丢数据了,通常的做法就是在生产者代码的回调函数中捕获到这样的消息,将它存储到备用链路里面,防止丢数据。这里主要还是之前看到的Sender.java中的completeBatch方法。我们可以简单的看一下reenqueue做了什么处理。
2023-03-15 10:43:15 371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人