MQ系列(九):RabbitMQ发布者确认,消费者(确认,预取,优先级,退出通知)

发布者确认解决了消息发送传输过程中因网络故章导致丢失消息的问题,RabbitMQ 为消息者确认提供了 自动确认手动确认 两种方式。

消费者预取可以限制在回传确认消息之前接收的消息数量,消费者优先级允许高优先级的消息者优先接收消息,当高优先级消费者阻塞时,消息只会传递给低优先级消费者。

阅读更多

MQ系列(八):RabbitMQ过期时间,死信队列,延迟队列,优先队列,持久化

RabbitMQ 提供了在声明队列时或发送消息时给消息设置过期时间。死信队列为处理过期或不能正确路由的消息提供了驻留场所,可以防止消息丢失,便于分析无法消费的原因。

消息过期时间配合死信队列可以实现延迟队列的功能。优先队列中优先级高的消息被优先消费。RabbitMQ 持久化支持交换器持久化,队列持久化,消息持久化。持久化可以提高 RabbitMQ 的可靠性,防止服务器重启或宕机导致数据丢失。

阅读更多

MQ系列(七):RabbitMQ连接,交换器,队列,发送,消费,确认,拒绝的使用

现在的 Java 应用大多会基于 Spring 框架开发,Spring 为集成 RabbitMQ 提供了封装好的依赖库 spring-rabbit,一些重复性的工作只需要通过 XML 一次性配置。Spring Boot 也为 RabbitMQ 提供了 start 依赖库,少许配置就可直接使用。

封装带来了使用的便捷性,但仍有必要了解其内部的一些运行流程和机制,方便在实际开发过程中灵活运用,也易于快速定位和解决问题。

本篇对 RabbitMQ 原生 Java 客户端 amqp-client 的运行流程进行讲解,大致涉及连接,交换器,队列,发送消息,消费消息,消息消费确认,拒绝消息等。

阅读更多

MQ系列(六):RabbitMQ特点,概念,服务安装,应用集成

RabbitMQ 是部署最广泛的开源消息代理,有成千上万的用户,是最受欢迎的开源消息中间件之一。

RabbitMQ(兔子) 轻巧,易于在内部和云上部署。可以分布式集群部署,以满足大规模,高可用性的要求。

RabbitMQ 是由 Erlang 语言开发的基于 AMQP (Advanced Message Queuing Protocol:高级消息队列协议)标准的开源实现。目前最新版本是 RabbitMQ 3.8.14(2021-03-02) 。 版本实现的 AMQP 0-9-1 版本协议。还可以通过插件的方式支持 STOMP 和 MQTT 等协议。

阅读更多

MQ系列(五):RabbitMQ 之 AMQP 0-9-1 模型和概念说明

要使用 RabbitMQ,需先理解其基本概念,而 RabbitMQ 原生是实现 AMQP 0-9-1 版本协议的,RabbitMQ 基本概念来自于 AMQP 0-9-1 协议中的定义,所以就有必要了解协义中的相关概念。

AMQP 0-9-1(Advanced Message Queuing Protocol:高级消息队列协议)是一种消息传递协议,它两个应用可以通过中间件代理通信。RabbitMQ 实现该版本的协议,下面描述的概念和述语也是基本此版本协议。

阅读更多

MQ系列(四):ActiveMQ发送与消费优化,异步,同步,流控,预取限制,慢消费

ActiveMQ 为生产者发送消息提供了根据业务场景需要的相关优化配置,支持同步,异步发送,支持流量控制,Broker存储空间设置等。

也为消息者提供了优化设置,支预取限制,为慢消费者提供了等待消息策略和消息丢弃策略的配置,支持异步消费者和优先级消费设置。

阅读更多

MQ系列(三):ActiveMQ转发模式,事务,过期,积压,应答模式,重试,死信队列

ActiveMQ 支持 JMS 规范中的 2 种消息转发模式,支持消息事务,支持异步发送消息和生产者流量控制,提供了 4 种消息消费应答模式,提供消息发送失败后重试机制,

本文分别对 ActiveMQ 消息转发模式,事务,消息过期,消息积压,应答模式,重试,死信队列等相关配置进行描述。

阅读更多

MQ系列(一):ActiveMQ特性,概念,持久化,安装,应用集成

ActiveMQ 是一款老牌的,开源的,多协议的,非常流行的,基于 JAVA 的消息中间件,由 Apache 出品。ActiveMQ 官网ActiveMQ Documentation

ActiveMQ 实现了 JSM 1.1 标准,并提供了很多附加特性,如 JMS 管理,主从管理,消息组通信,消息优先级,延迟接收消息,虚拟接收者,消息持久化,消息队列监控等特性。

目前有两种类型的 ActiveMQ 可用,分别是经典的 5.x 版本 和 下一代 Artemis 版本,后续 5.x 与 Artemis 版本兼容合并将成为 ActiveMQ 6。

阅读更多

MQ系列(十五):Kafka 介绍和安装运行、发布订阅

  Kafka 是一个开源的流处理平台,由 Scala 和 Java 编写;是一种高吞吐量的分布式发布订阅消息系统。

  Kafka 用于构建实时的数据管道和流式应用程序。它具有水平可扩展性、容错性、速度极快。并在数千家公司投入生产。

  Kafka 目前最新的版本是 2.2.0,本篇以该版本为例。Apache Kafka 官网Apache 软件基金会(ASF) 官网

阅读更多