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

这个只是一个脚手架,具体业务复杂的话 自己按照这个脚手架实现即可
0

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程