在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:reliable-message开源软件地址:https://gitee.com/NuLiing/reliable-message开源软件介绍:介绍RMQ(reliable-message-queue)是基于可靠消息的最终一致性的分布式事务解决方案。 如果感觉有帮助,帮忙点个star! 中文文档
RMQ对接示例:
框架定位
Maven模块描述
业务系统对接RMQmaven依赖在业务系统的pom文件中引入rmq-api最新版本依赖: # 中央仓库: https://search.maven.org/search?q=rmq-api<dependency> <groupId>com.gitee.nuliing</groupId> <artifactId>rmq-api</artifactId> <version>${最新稳定版本}</version></dependency> 在业务代码中引入RMQ的Dubbo服务import org.apache.dubbo.config.annotation.Reference;import com.cn.rmq.api.service.IRmqService;@Referenceprivate IRmqService rmqService; 编写消息发送方业务方法public void doBusiness() { // 自定义消息队列名称 String queue = "test.queue"; // 消息内容, 如果传输对象,建议转换成json字符串 String messageContent = "......"; // 调用RMQ,预发送消息 String messageId = rmqService.createPreMessage(queue, messageContent); // 执行业务 ... ... // 异步调用RMQ,确认发送消息 RpcContext.getContext().asyncCall(() -> rmqService.confirmAndSendMessage(messageId)); } 编写消息消费方业务方法public void handleMsg(RmqMessage msg) { try { String messageContent = msg.getMessageBody(); // 执行业务 ... ... // 通知RMQ消息消费成功 // 如果使用的是RMQ的directSendMessage,则无需通知 if (StringUtils.isNotBlank(msg.getMessageId())) { rmqService.deleteMessageById(msg.getMessageId()); } } catch (Exception e) { ... } } 更多分布式事务框架
|
请发表评论