摘要:
【目录】 阅读全文
摘要:
一、什么是死信队列 当一条消息初次消费失败,消息队列会自动进行消费重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。这个队列就是死信队列(Dead-Letter Queue,DLQ),而其 阅读全文
摘要:
一、顺序消息的消费重试 对于顺序消息,当 Consumer 消费消息失败后,为了保证消息的顺序性,其会自动不断地进行消息重试,直到消费成功。消费重试默认间隔时间为 1000 毫秒。重试期间应用会出现消息消费被阻塞的情况。 DefaultMQPushConsumer consumer = new De 阅读全文
摘要:
一、消息发送重试机制说明 Producer 对发送失败的消息进行重新发送的机制,称为消息发送重试机制,也称为消息重投机制。 对于消息重投,需要注意以下几点: 生产者在发送消息时,若采用同步或异步发送方式,发送失败会重试,但 oneway 消息发送方式发送失败是没有重试机制的 只有普通消息具有发送重试 阅读全文
摘要:
一、消息过滤 消息者在进行消息订阅时,除了可以指定要订阅消息的 Topic 外,还可以对指定 Topic 中的消息根据指定条件进行过滤,即可以订阅比 Topic 更加细粒度的消息类型。 对于指定 Topic 消息的过滤有两种过滤方式:Tag 过滤与 SQL 过滤。 1、Tag 过滤 通过 consu 阅读全文
摘要:
一、批量发送消息 发送限制 生产者进行消息发送时可以一次发送多条消息,这可以大大提升 Producer 的发送效率。不过需要注意以下几点: 批量发送的消息必须具有相同的 Topic 批量发送的消息必须具有相同的刷盘策略 批量发送的消息不能是延时消息与事务消息 批量发送大小 默认情况下,一批发送的消息 阅读全文
摘要:
一、问题引入 这里的一个需求场景是:工行用户 A 向建行用户 B 转账 1 万元。 我们可以使用同步消息来处理该需求场景: 工行系统发送一个给 B 增款 1 万元的同步消息 M 给 Broker 消息被 Broker 成功接收后,向工行系统发送成功 ACK 工行系统收到成功 ACK 后从用户 A 中 阅读全文
摘要:
一、延时消息 当消息写入到 Broker 后,在指定的时长后才可被消费处理的消息,称为延时消息。 采用 RocketMQ 的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交易中超时未支付关闭订单的场景,12306 平台订票超时未支付取消订票的场景。 在电商平台中,订单创建时 阅读全文
摘要:
一、什么是顺序消息 顺序消息指的是,严格按照消息的发送顺序进行消费的消息(FIFO)。 默认情况下生产者会把消息以 Round Robin 轮询方式发送到不同的 Queue 分区队列;而消费消息时会从多个 Queue 上拉取消息,这种情况下的发送和消费是不能保证顺序的。如果将消息仅发送到同一个 Qu 阅读全文
摘要:
一、消息发送分类 Producer 对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。 1、同步发送消息 同步发送消息是指,Producer 发出⼀条消息后,会在收到 MQ 返回的 ACK 之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率太低。 2、异步发送消息 异步发送消息 阅读全文