什么是 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. 消息队列之延时消息应用解析及实践

    简介:消息队列常用于实现业务需要的异步.解耦以及削峰功能.但在某些特殊的业务场景中,还需要消息队列服务本身支持一些特殊的消息类型,比如常见的延时消息.本次直播为您深入剖析延时消息的特性.应用场景,对比 ...

  2. 构建企业级业务高可用的延时消息中台

    来自:架构之美 1.业务场景剖析 公司业务系统(比如:电商系统)中有大量涉及定时任务的业务场景,例如:实现买卖双方在线沟通的IM系统,为了确保接收方能够收到消息,服务端一般都会有重试策略,即服务端在消 ...

  3. SpringCloud(十一)Bus消息总线、Stream消息驱动

    一.Bus消息总线 需求:分布式自动刷新配置功能: 解决:SpringCloud Bus配合Spring cloud Config使用可以实现配置的动态刷新. 1.概述 定义:Spring Cloud ...

  4. java消息总线ibus_SpringCloud Bus 消息总线

    一.能干嘛? 二.什么是总线? 三.动态刷新全局广播 注意:必须先具备良好的RabbitMQ环境 演示广播效果,增加复杂度,再以3355为模板再制作一个3366 1.新建cloud-config-cl ...

  5. java 消息总线 框架_JavaWeb 消息总线框架 Saka V0.0.1 发布

    端午闲着无聊,自己撸了一个简单的框架,可以实现在使用SendClient发送消息,在Spring容器中,符合该消息机制的接收器将能够被执行,目前Saka处于0.0.1版本[Saka-GIthub地址( ...

  6. 消息总线c语言,消息队列与消息总线 - 有什么区别?

    小智.. 20 这两个概念之间的界限有些模糊,因为一些产品现在支持以前仅属于一个或另一个类别的功能(例如Azure Service Bus支持这两种方法). 队列 消息队列从应用程序接收消息,并以先进 ...

  7. Android组件化方案及组件消息总线modular-event实战

    背景 组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向.美团内部各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产 ...

  8. SpringCloud学习笔记(十) Bus 消息总线

    目录 一.SpringCloud Bus 介绍 1.消息总线的由来 2.是什么 3.能干嘛 4.总线 1)什么是总线 2)基本原理 二.RabbitMQ环境配置 三.动态刷新全局广播 1.搭建客户端微 ...

  9. 延时消息常见实现方案

    前言 延时消息(定时消息)指的在分布式异步消息场景下,生产端发送一条消息,希望在指定延时或者指定时间点被消费端消费到,而不是立刻被消费. 延时消息适用的业务场景非常的广泛,在分布式系统环境下,延时消息 ...

最新文章

  1. linux驱动:i2c驱动(四)流程图之注册驱动
  2. Android 在menu中同时显示Icon和Text
  3. cf559C. Gerald and Giant Chess(容斥原理)
  4. 静态链接库与动态链接库的优缺点
  5. linux 网络7层模型,Linux网络编程——OSI七层模型、TCP/IP模型
  6. Chunky Monkey-freecodecamp算法题目
  7. 个人计算机与手机的区别,手机与电脑的CPU是一回事吗?一共有六大区别,看看你知道多少!...
  8. 【转载】C#中可使用string.Empty代表空字符
  9. 通过经典题目来理解多种闭包实现方式
  10. vm.$set()、vm.$delete()实现todolist类似的功能
  11. 浅谈分子动力学(MD)模拟及其势文件
  12. 区块链专利申请全球过半 厉害了我的国
  13. 二极管 在低温下 压降 很大
  14. Minio过期分片上传文件清理引出的系统配置
  15. 上线啦,PP.io!
  16. linuxoracle图形界面无法跳出_Linux 7图形化安装Oracle或者其他软件,打不开图形界面的问题 | 信春哥,系统稳,闭眼上线不回滚!...
  17. R语言——(五)、探索性数据分析
  18. SpringBoot  启动出现Cannot determine embedded database driver class for database type NONE
  19. 实现MapX的移屏测距功能(转)
  20. 《扬帆优配》个人养老金投资最新成绩出炉 七成养老FOF跑输基准

热门文章

  1. 淘宝/天猫上传图片到淘宝 API 调用说明 请求示例
  2. 艾永亮:一家面包店是怎么干掉星巴克的?
  3. 直流信号线性放大器非隔离转换模块0-10V转0-12V大功率负载180mA导轨安装
  4. 【VS开发】【智能语音处理】解读男女声音的区别:亮度,糙度
  5. (转)nginx应用总结(1)--基础认识和应用参数优化配置
  6. ChatGPT背后的“血汗工厂”:最低时薪才9块钱,有员工受到心理创伤
  7. 员工电脑监控软件 iMonitor EAM 9.632 新版本上线啦!
  8. Windows下Qt开发环境:OpenGL导入3DMax模型(.3DS)
  9. wxWidget vs2010 环境配置
  10. 在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件