欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

干货分享|HZERO 系列组件之消息队列集成组件(上)、Redis 队列集成

最编程 2024-03-26 13:16:35
...
【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

图片

RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词。

消息队列MQ是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件,所以掌握好消息队列MQ就变得极其重要。

下文我们主要讲讲HZERO如何使用Redis来实现消息队列。

消息队列组件概述

消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。

消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

应用场景

1、希望是快产快消的即时消费场景,并且生产的消息立即被消费者消费掉

2、允许出现消息丢失的场景

3、不需要系统保存发送过的消息,做到来无影去无踪

4、需要处理的数据量并不是那么巨大

 

Redis队列集成

概念

  • RedisHelper封装了Redis操作的常用方法

  • 提供了基于Redis的消息队列工具

  • 多数据源,动态切换 Reids DB

 

组件坐标

<dependency>  <groupId>org.hzero.starter</groupId>  <artifactId>hzero-starter-redis</artifactId></dependency>

 

开发示例

Yaml

hzero:  redis:    # 开启消息队列, 默认值false    redis-queue: true    # 消息队列默认使用的db, 默认值1    queue-db: 1

 

生产者

调用Org.hzero.core.redis.RedisQueueHelper的Push或PushAll方法,可以将消息推送到消息队列。其中Key是消息队列的消息分组标识,需要全局唯一。

图片

 

消费者

  • 逐条消费

实现接口Org.hzero.core.redis.handler.IQueueHandler,类添加注解Org.hzero.core.redis.handler.QueueHandler,Value指定消息生产者对应的Key​​​​​​​

@QueueHandler("demo")    public class DemoListener implements IQueueHandler {        @Override        public void process(String message) {            System.out.println(message);        }    }
  • 批量消费

实现接口Org.hzero.core.redis.handler.IBatchQueueHandler,类添加注解Org.hzero.core.redis.handler.QueueHandler,Value指定消息生产者对应的Key​​​​​​​

@QueueHandler("demo")public class DemoListener implements IBatchQueueHandler {    @Override    public void process(List<String> messages) {        for (String message : messages) {            System.out.println(message);        }    }}

HZERO针对消息队列中间件提供快速集成的支持,而且提供了很多实现方法,接入即可使用,便于开发者使用Redis消息队列,以最小的代码量实现项目上的需求。

 

联系我们

产品试用请登录开放平台。请在 PC 端打开:

https://open.hand-china.com/market-home/trial-center/

产品详情请登录开放平台:

https://open.hand-china.com/document-center/

如有疑问登录开放平台提单反馈

https://open.hand-china.com/

图片

▲ 更多精彩内容,扫码关注 “四海汉得” 公众号