ACK后业务问题
来源:3-24 可靠性消息最终演示
love_
2023-03-24 12:03:08
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
// 具体的消息应答
List<String> strings = splitter.splitToList(correlationData.getId());
String messageId = strings.get(0);
long sendTime = Long.parseLong(strings.get(1));
String messageType = strings.get(2);
if(ack) {
// 当Broker 返回ACK成功时, 就是更新一下日志表里对应的消息发送状态为 SEND_OK
// 如果当前消息类型为reliant 我们就去数据库查找并进行更新
if(MessageType.RELIANT.endsWith(messageType)) {
this.messageStoreService.succuess(messageId);
}
log.info("send message is OK, confirm messageId: {}, sendTime: {}", messageId, sendTime);
} else {
log.error("send message is Fail, confirm messageId: {}, sendTime: {}", messageId, sendTime);
}
}
确定投递成功不是要处理自己的业务逻辑嘛,这个为啥要封装
1回答
阿神
2025-01-09
相似问题