博客
关于我
Pulsar mq 设置延迟消息模式 pulsar mq 发送延迟消息 pulsar如何发送消费延时消息
阅读量:804 次
发布时间:2023-03-04

本文共 1427 字,大约阅读时间需要 4 分钟。

Spring Pulsar Template 应用实践

本文将介绍如何利用 Spring 提供的 PulsarTemplate 实现消息生产和消费,具体包含以下内容:

1. 消息生产

在本文中,我们使用 pulsarTemplate 进行消息生产。为了确保客户端的稳定性,我们对 Pulsar 客户端进行了封装。生产过程如下:

String fingerprint = UUID.randomUUID().toString();pulsarTemplate.newMessage(fingerprint)    .withTopic("dddd")    .withMessageCustomizer(item -> {        item.deliverAfter(10L, TimeUnit.SECONDS);    })    .send();
  • fingerprint:生成一个唯一标识符,用于区分消息。
  • withTopic("dddd"):指定消息的主题地址。
  • withMessageCustomizer:自定义消息发送策略,这里设置消息在发送后10秒后进行定期交付。

通过上述配置,我们可以确保消息能够按照预定时间发送,提升消息的可靠性。

2. 消息消费

消息消费部分需要特别注意以下几点:

SubscriptionType 设置

在消费过程中,SubscriptionType 的设置至关重要。默认情况下,如果未设置 SubscriptionType,消息将采用即时消费模式。为了满足特定需求,我们需要明确指定 SubscriptionType。

在代码实现中,我们采用如下配置:

@Component@Slf4jpublic class Consumer {    @PulsarListener(topics = "dddd", subscriptionType = SubscriptionType.Shared)    public void receiveMessage(String message) {        log.info("Received message: {}", message);    }}
  • @PulsarListener:指定监听的主题地址和 SubscriptionType。
  • subscriptionType = SubscriptionType.Shared:设置共享订阅模式。

通过这种方式,我们可以根据实际需求选择适当的订阅类型,确保消息能够按预定模式消费。

3. 日志记录

在实际应用中,日志记录是保障系统稳定运行的重要手段。我们可以通过以下方式进行日志配置:

@Slf4jpublic class Consumer {    @PulsarListener(topics = "dddd", subscriptionType = SubscriptionType.Shared)    public void receiveMessage(String message) {        log.info("Received message: {}", message);    }}
  • @Logj:启用Slf4j日志框架,确保高效的日志记录。
  • log.info:记录消息接收信息,方便后续排查和追踪。

通过上述配置,我们可以实现对消息消费过程的全面监控和记录,确保系统运行的稳定性。

转载地址:http://gwafk.baihongyu.com/

你可能感兴趣的文章
Python + Pytest 自动化框架的用例依赖实操
查看>>
Python + requests实现接口自动化测试!
查看>>
python + requests实现的接口自动化测试(超详细~)
查看>>
Python + selenium 如何截图?
查看>>
Python + Selenium 登录QQ邮箱
查看>>
Python + selenium如何做接口自动化测试?
查看>>
Python + selenium如何截图!
查看>>
Python + selenium自动化生成测试报告!
查看>>
Python - C 嵌入式分段错误
查看>>
Python - DM 一个用户 Discord 机器人
查看>>
python - Flask 基础 - 蓝图( Blueprint )(2)
查看>>
python - os.getenv 和 os.environ 看不到我的 bash shell 的环境变量
查看>>
Python - while循环
查看>>
Python - “if“中的逻辑评估顺序陈述
查看>>
Python - 使用 pandas 格式化 Excel 单元格
查看>>
python - 列表
查看>>
Python - 可用时从串行端口数据逐行读取到列表中
查看>>
Python - 在应用程序中显示 Web 浏览器/iframe
查看>>
Python - 如何使用管道执行shell命令,但没有‘shell = True‘?
查看>>
Python - 如何使这个不可腌制的对象可腌制?
查看>>