rocketmq 실전 발송 사무 메시지
9747 단어 rocketmq트 랜 잭 션 메시지
실전 에 서 는 모두
RocketMQTemplate형식 으로 보 여 주 었 고 집적 방안 은 을 상세 하 게 볼 수 있다.먼저
@RocketMQTransactionListener로 컬 트 랜 잭 션 과 트 랜 잭 션 을 모 의 하 는 모니터 를 정의 합 니 다.@Slf4j
@RocketMQTransactionListener(txProducerGroup = "tx-group")
public class TransactionListenerImpl implements RocketMQLocalTransactionListener {
@Override
public RocketMQLocalTransactionState executeLocalTransaction(Message msg, Object arg) {
//
log.info("============== executeLocalTransaction");
return RocketMQLocalTransactionState.UNKNOWN;
}
@Override
public RocketMQLocalTransactionState checkLocalTransaction(Message msg) {
//
log.info("============== checkLocalTransaction");
return RocketMQLocalTransactionState.COMMIT;
}
}
그 다음 에 한 소비 자 를 정의 하고'topic-tx'로 설정 합 니 다.
@RocketMQMessageListener(topic = "topic-tx", consumerGroup = "tx-consumer-group")
public class TransactionConsumer implements RocketMQListener<Message> {
@Override
public void onMessage(Message message) {
log.info("topic-tx received message: {}", message);
}
}
마지막 으로 메시지 생산 자 를 정의 하여"topic-tx"테마 로 메 시 지 를 보 내 고"tx-group"(사무 모니터 가 설정 한
topic과 일치 하도록 지정 해 야 합 니 다.@Slf4j
public class TransactionProducer {
@Resource
private RocketMQTemplate rocketMQTemplate;
public void produce() {
Message<String> message = new Message<>();
message.setId(UUID.randomUUID().toString());
message.setContent("transaction message");
log.info("========sending message=========");
rocketMQTemplate.sendMessageInTransaction("tx-group", "topic-tx", MessageBuilder.withPayload(message).build(), null);
log.info("========finish send =========");
}
}
프로젝트 를 시작 하면 콘 솔 에서 다음 과 같은 출력 을 볼 수 있 습 니 다.
========sending message=========
============== executeLocalTransaction
========finish send =========
============== checkLocalTransaction
topic-tx received message: Message(id=168486dd-0814-4060-ace1-5a55449b3f72, content=transaction message)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker 설치 RocketMQ주의:docker 환경이 없는 경우 본인의centos를 참고하여 docker1을 설치할 수 있습니다.어떤 rocketMq를 사용할 수 있는지 조회docker search rocketmq2.미러 추출docker pul...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.