基于rocketmq最终消息数分布式据库事务

# hms-rocketmq-tx

#### 介绍
基于rocketmq最终消息数分布式据库事务

代码  https://gitee.com/hbhk/hms-rocketmq-tx

#### 软件架构

    1、spring-boot

    2、支持jdbc驱动的数据库

    3、rocketmq(也可以自己重写其他mq链接)

    4、利用spring事务管理- 执行前,将mq消息保留到本地表中,进行重试,保证最终一致性


#### 安装教程

1.  下载代码deploy到本地私服


#### 使用说明

1. spring-boot项目依赖
              
```
  <dependency>
     <groupId>org.hbhk.hms</groupId>
     <artifactId>hms-rocketmq-tx</artifactId>
     <version>1.0.0-SNAPSHOT</version>
 </dependency>
```


2.  启用事务组件

```

@SpringBootApplication(scanBasePackages = "org.hbhk.aili")
// 1、启用mq组件
@EnableMq
// 2、 开启事务 ,且在指定service方法开启事务@Transactional()
@EnableTransactionManagement()

public class HmsTxApp {

    public static void main(String[] args) throws Exception {
        //指定某个节点为失败重试处理
        System.setProperty("mqtx.retry", "on");
        SpringApplication.run(HmsTxApp.class, args);
    }

}
```
3. 配置

    添加mq链接配置

    hms.mq.namesrvAddr=127.0.0.1:9876

   备注:多个mq链接配置时,直接配置 对应生产者和消费者注解上面

4.  生产者和消费者


```
    /**
 * 
 * 1、配置事务表
 * 2、配置发送topic
 */
@MqTxProducer(txTable = "hms_mq_tx", topic = "hbhk")
public interface ITestSendMqMsg extends MqMessageSender<TBUser2> {

}
```


```
/**
 * 
 * 1、配置消费topic
 * 2、配置消费组(全局唯一)
 */
@MqConsumer(topic = "hbhk", groupName = "hbhk-g")
@Service
public class MqconsumerTest extends MqMessageListener<TBUser> {
    @Override
    public void onMessage(Map<String, String> header, TBUser message) {

    }

}
```

5、执行mq消息事务表脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值