springboot 业务消息总线及延时消息回调
什么是 notify-spring-boot-starter?
notify-spring-boot-starter消息组件,支持分布式业务消息总线、延时消息等,屏蔽底层消息引擎种类,提供线上统一的接口,可发送异步消息及延时消息,同时可订阅异步消息或延时消息。目前可选择基于redis、rabbitmq等任一一种做消息引擎,其他消息中间件将陆续支持。
支持的消息引擎中间件
redis
rabbitmq
有哪些特点?
屏蔽底层不同的中间件类型,统一接口调用。
有哪些功能?
异步业务消息订阅及延时消息订阅
有哪些场景可以使用?
单一业务分发消息进行异步处理时,比如业务完成推送业务数据给第三方;
支付时,后端服务需要定时轮训支付接口查询是否支付成功;
快速开始
引入依赖
<dependency><groupId>com.github.likavn</groupId><artifactId>notify-spring-boot-starter</artifactId><version>1.3.2</version>
</dependency>
设置消息引擎类别
在application.yml文件中配置消息引擎类别,如下:
notify:type: redis #redis或者rabbitmq
如果是redis,需要在pom.xml单独引入,如下:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
如果是rabbitmq,需要在pom.xml单独引入,如下:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
发送与订阅异步消息
@Resource
private MsgSender msgSender;// 发送异步消息
// 第一个参数是业务消息code
// 第二个参数是业务消息Object实体对象数据
msgSender.send("testMsgSubscribe", "charging");
订阅异步业务消息监听器实现类SubscribeMsgDemoListener.java
/*** 订阅异步消息* 继承超类【SubscribeMsgListener】并设置监听的消息实体对象*/
@Slf4j
@Component
public class SubscribeMsgDemoListener extends SubscribeMsgListener<String> {/*** 必须有一个构造函数订阅业务消息类型*/public SubscribeMsgDemoListener() {// 设置订阅的业务消息类型,其他类型的服务的消息类型,可设置对应服务id+业务消息类型codesuper(Collections.singletonList("testMsgSubscribe"));}/*** 接收业务消息体对象数据*/@Overridepublic void accept(Message<String> message) {log.info("消息监听,body:{}", message.getBody());}
}
发送与订阅延时消息
@Resource
private MsgSender msgSender;// 发送异步消息
// 第一个参数 【DelayMsgDemoListener.class】为当前延时消息的处理实现类
// 第二个参数为延时消息体
// 第三个参数为延时时间,单位:秒
msgSender.sendDelayMessage(DelayMsgDemoListener.class, "922321333", 5);
延时消息监听器实现类DelayMsgDemoListener.java
/*** 订阅延时消息* 实现接口【DelayMsgListener】并设置回调消息body实体*/
@Slf4j
@Component
public class DelayMsgDemoListener implements DelayMsgListener<String> {@Overridepublic void onMessage(Message<String> message) {log.info("接收延时消息回调body:{}", message.getBody());}
}
更多信息请查阅相关接口类...
项目地址:https://github.com/likavn/notify-spring-boot-starter
springboot 业务消息总线及延时消息回调相关推荐
- 消息队列之延时消息应用解析及实践
简介:消息队列常用于实现业务需要的异步.解耦以及削峰功能.但在某些特殊的业务场景中,还需要消息队列服务本身支持一些特殊的消息类型,比如常见的延时消息.本次直播为您深入剖析延时消息的特性.应用场景,对比 ...
- 构建企业级业务高可用的延时消息中台
来自:架构之美 1.业务场景剖析 公司业务系统(比如:电商系统)中有大量涉及定时任务的业务场景,例如:实现买卖双方在线沟通的IM系统,为了确保接收方能够收到消息,服务端一般都会有重试策略,即服务端在消 ...
- SpringCloud(十一)Bus消息总线、Stream消息驱动
一.Bus消息总线 需求:分布式自动刷新配置功能: 解决:SpringCloud Bus配合Spring cloud Config使用可以实现配置的动态刷新. 1.概述 定义:Spring Cloud ...
- java消息总线ibus_SpringCloud Bus 消息总线
一.能干嘛? 二.什么是总线? 三.动态刷新全局广播 注意:必须先具备良好的RabbitMQ环境 演示广播效果,增加复杂度,再以3355为模板再制作一个3366 1.新建cloud-config-cl ...
- java 消息总线 框架_JavaWeb 消息总线框架 Saka V0.0.1 发布
端午闲着无聊,自己撸了一个简单的框架,可以实现在使用SendClient发送消息,在Spring容器中,符合该消息机制的接收器将能够被执行,目前Saka处于0.0.1版本[Saka-GIthub地址( ...
- 消息总线c语言,消息队列与消息总线 - 有什么区别?
小智.. 20 这两个概念之间的界限有些模糊,因为一些产品现在支持以前仅属于一个或另一个类别的功能(例如Azure Service Bus支持这两种方法). 队列 消息队列从应用程序接收消息,并以先进 ...
- Android组件化方案及组件消息总线modular-event实战
背景 组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向.美团内部各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产 ...
- SpringCloud学习笔记(十) Bus 消息总线
目录 一.SpringCloud Bus 介绍 1.消息总线的由来 2.是什么 3.能干嘛 4.总线 1)什么是总线 2)基本原理 二.RabbitMQ环境配置 三.动态刷新全局广播 1.搭建客户端微 ...
- 延时消息常见实现方案
前言 延时消息(定时消息)指的在分布式异步消息场景下,生产端发送一条消息,希望在指定延时或者指定时间点被消费端消费到,而不是立刻被消费. 延时消息适用的业务场景非常的广泛,在分布式系统环境下,延时消息 ...
最新文章
- linux驱动:i2c驱动(四)流程图之注册驱动
- Android 在menu中同时显示Icon和Text
- cf559C. Gerald and Giant Chess(容斥原理)
- 静态链接库与动态链接库的优缺点
- linux 网络7层模型,Linux网络编程——OSI七层模型、TCP/IP模型
- Chunky Monkey-freecodecamp算法题目
- 个人计算机与手机的区别,手机与电脑的CPU是一回事吗?一共有六大区别,看看你知道多少!...
- 【转载】C#中可使用string.Empty代表空字符
- 通过经典题目来理解多种闭包实现方式
- vm.$set()、vm.$delete()实现todolist类似的功能
- 浅谈分子动力学(MD)模拟及其势文件
- 区块链专利申请全球过半 厉害了我的国
- 二极管 在低温下 压降 很大
- Minio过期分片上传文件清理引出的系统配置
- 上线啦,PP.io!
- linuxoracle图形界面无法跳出_Linux 7图形化安装Oracle或者其他软件,打不开图形界面的问题 | 信春哥,系统稳,闭眼上线不回滚!...
- R语言——(五)、探索性数据分析
- SpringBoot 启动出现Cannot determine embedded database driver class for database type NONE
- 实现MapX的移屏测距功能(转)
- 《扬帆优配》个人养老金投资最新成绩出炉 七成养老FOF跑输基准
热门文章
- 淘宝/天猫上传图片到淘宝 API 调用说明 请求示例
- 艾永亮:一家面包店是怎么干掉星巴克的?
- 直流信号线性放大器非隔离转换模块0-10V转0-12V大功率负载180mA导轨安装
- 【VS开发】【智能语音处理】解读男女声音的区别:亮度,糙度
- (转)nginx应用总结(1)--基础认识和应用参数优化配置
- ChatGPT背后的“血汗工厂”:最低时薪才9块钱,有员工受到心理创伤
- 员工电脑监控软件 iMonitor EAM 9.632 新版本上线啦!
- Windows下Qt开发环境:OpenGL导入3DMax模型(.3DS)
- wxWidget vs2010 环境配置
- 在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件