分布式消息服务DMS如何实现死信消息的消费

本文部分内容节选自华为云帮助中心的分布式消息服务(DMS)服务的产品介绍


死信消息是什么
死信消息是指无法被正常消费的消息。分布式消息服务DMS支持对消息进行异常处理。当消息进行多次重复消费仍然失败后,DMS会将该条消息转存到死信队列中,有效期为72小时,用户可以根据需要对死信消息进行重新消费。消费死信消息时,只能消费该消费组产生的死信消息。全局有序的普通队列的死信消息依然按照先入先出(FIFO)的顺序存储在死信队列中。


如何消费死信消息
消费指定消费组产生的死信消息。可同时消费多条消息,每次消费的消息负载不超过512KB。仅NORMAL队列和FIFO队列可以开启死信消息,因为只有NORMAL队列和FIFO队列可消费死信消息。


URI

GET /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters?max_msgs={max_msgs}&time_wait={time_wait}&ack_wait={ack_wait}


参数说明请参见下表:








如何确认已消费死信消息
在消费者消费死信消息期间,死信消息仍然停留在队列中,但死信消息从被消费开始的30秒内不能被该消费组再次消费,若在这30秒内没有被消费者确认消费,则DMS认为死信消息未消费成功,将可以被继续消费。


如果死信消息被确认消费成功,该死信消息将不能被该消费组再次消费,死信消息的保留时间为72小时(除非消费组被删除),72小时后会被删除。


消息批量消费确认时,必须严格按照消息消费的顺序提交确认,DMS按顺序判定消息是否消费成功,如果某条消息未确认或消费失败,则不再继续检测,默认后续消息全部消费失败。建议当对某一条消息处理失败时,不再需要继续处理本批消息中的后续消息,直接对已正确处理的消息进行确认。


注意,仅NORMAL队列和FIFO队列可以开启死信消息,因为只有NORMAL队列和FIFO队列可消费死信消息。

URI

POST /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters/ack















以上就是对分布式消息服务DMS如何实现死信消息的消费的介绍,想要了解更多,欢迎点击分布式消息服务DMS查看。

原文地址:http://blog.51cto.com/13739602/2137222

时间: 2024-08-03 01:24:29

分布式消息服务DMS如何实现死信消息的消费的相关文章

分布式消息服务DMS与开源Kafka对比

分布式消息服务(简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息.那么,比起自建开源的Kafka,分布式消息服务DMS有哪些好处呢?以下就是两者的详细对比. 原文地址:https://www.cnblogs.com/middleware/p/9146189.html

JMS(Java消息服务)入门教程

阅读目录 什么是Java消息服务 为什么需要JMS JMS的优势 JMS消息传送模型 接收消息 JMS编程接口 JMS消息结构 JMS使用示例 译文链接(做了部分修改~~) 什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果,我

消息中间件--ActiveMQ&JMS消息服务

### 消息中间件 ### ---------- **消息中间件** 1. 消息中间件的概述 2. 消息中间件的应用场景(查看大纲文档,了解消息队列的应用场景) * 异步处理 * 应用解耦 * 流量削峰 * 消息通信 ---------- ### JMS消息服务 ### ---------- **JMS的概述** 1. JMS消息服务的概述 2. JMS消息模型 * P2P模式 * Pub/Sub模式 3. 消息消费的方式 * 同步的方式---手动 * 异步的方式---listener监听 4.

类比 RocketMq 和 淘宝消息服务:

rocketMq建立监听: 一个groupId下通常会挂载多个consumer实例. 集群订阅方式 (默认):一个监听到之后,另一个consumer实例就不会再监听到(不管在不在一个服务器上). 由于默认集群订阅方式,只能有一个监听到,所以,本地测试和服务器上topic不能一致,否则会影响服务器上监听不到消息.而topic 的不一致导致本地测试和服务端测试,groupID也不一致,但多台服务器上需要多个groupId, 淘宝消息服务: 通过SDK接受消息,Java接口使用说明: public i

消息队列如何利用标签实现消息过滤

场景介绍 一个消息队列(MQ)存储的消息,可以包含不同实际用途.如果这些消息不加区分,消费者每次消费都会按顺序拉取消息,直到完成对所有消息的消费.如果消费者只对某一类型的消息感兴趣,那么将所有消息都消费一遍必会影响消费者处理效率. 解决方案 分布式消息服务DMS是稳定可靠的消息队列服务,提供普通队列.有序队列.Kafka.ActiveMQ.RabbitMQ,兼容HTTP.TCP.AMQP协议,应用于系统解耦.异步通信.流量削峰去谷.第三方集成等场景.DMS提供消息标签的能力,支持生产者为每条消息

【Microsoft Azure学习之旅】消息服务Service Bus的学习笔记及Demo示例

今年项目组做的是Cloud产品,有幸接触到了云计算的知识,也了解并使用了当今流行的云计算平台Amazon AWS与Microsoft Azure.我们的产品最初只部署在AWS平台上,现在产品决定同时支持Azure,所以有幸学习下Azure,并在查看文档资料以及写Demo过程中发现了其中的一些不同.虽然AWS与Azure是两款旗鼓相当的竞争产品,但是还是有很多区别. 本文主要是自己学习Service Bus中的学习笔记,自己有些结论也都跟微软技术支持确认过.个人观点,抛砖引玉:-) 消息服务对于云

JEESZ-kafka消息服务平台实现

JEESZ的消息服务平台已经抛弃了之前的ActiveMQ,改用高吞吐量比较大的Kafka分布式消息中间件方案: JEESZ-kafka消息平台使用spring+kafka的集成方案,详情如下: 1. 使用最高版本2.1.0.RELEASE集成jar包:spring-integration-kafka 2. Zookeeper.Kafka分布式集群使用init.properties配置化方案. 3. 使用消息生产者spring-context-producer配置化方案. 4. 使用消息消费者sp

消息服务框架

"一切都是消息"--MSF(消息服务框架)入门简介 "一切都是消息"--这是MSF(消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,中文名称:消息服务框架,它是PDF.NET框架的一部分. 1,MSF诞生的背景 MSF最初来源于2009年,我们为某银行开发的基金投资分析系统,由于银行安全的原因并且这些投资资料属于机密资料,规定必须使用邮件系统来发送这些资料,但是邮件的收发不是直接针对人,而是两端的计算机程序.为

JAVA消息服务JMS规范及原理详解

一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信.Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持. JMS允许应用程序组件基于JavaEE平台创建.发送.接收和读取消息.它使分布式通信耦合度更低,消息服务更加可靠以及异步性. 二.常用术语介绍 在提到JMS时,我们通常会说到一些术语,解释如下: 消息