dargoner / transactional-rocketmq-spring-boot-starter

rocketmq 事务消息结合本地事务实现方便的发送事务

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

transactional-rocketmq-spring-boot-starter

rocketmq 事务消息结合本地事务实现方便的发送事务

  • 基于rocketmq-spring-boot-starter
  • 依赖本地事务记录表来完成事务消息

增加依赖

 <dependency>
    <groupId>cn.github.xyz327</groupId>
    <artifactId>transactional-rocketmq-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

在业务数据库中增加事务记录表

执行 script/init.sql

使用

public class TransactionalMqTest {
    @Autowired
    private TransactionalRocketMqProducer transactionalRocketMqProducer;
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public boolean transactionalMessage() throws Exception {
        // 做本地事务操作
        jdbcTemplate.queryForList("select 1 from dual");

        // 发送事务消息
        Message message = new Message();
        message.setTopic("trans_topic");
        message.setBody("事务消息".getBytes(StandardCharsets.UTF_8));
        transactionalRocketMqProducer.sendTransactionalMessage(message);
        return true;
    }
}

About

rocketmq 事务消息结合本地事务实现方便的发送事务

License:MIT License


Languages

Language:Java 100.0%