跳至主内容
版本:4.3

RabbitMQ 核心与流插件

概述

本节涵盖 RabbitMQ 核心流插件之间的差异。流核心是指在仅激活默认插件的情况下,通过 AMQP 0.9.1、AMQP 1.0、MQTT 和 STOMP 等协议在 Broker 中使用的流功能。

功能矩阵

功能RabbitMQ 核心Stream 插件
激活方式内置必须激活
协议AMQP 0.9.1 和 AMQP 1.0RabbitMQ 流
客户端AMQP 0.9.1 客户端(文档)。AMQP 1.0 客户端(文档RabbitMQ 流客户端
端口56725552
格式服务端 AMQP 1.0 消息格式编码与解码客户端 AMQP 1.0 消息格式编码与解码
子条目批处理支持(未压缩)支持(Java 示例)。客户端压缩选项
偏移量跟踪使用外部存储内置服务端支持(Java 示例)或外部存储
发布去重不支持支持(Java 示例
超级流 (Super stream)不支持支持
单活跃消费者不支持支持
吞吐量每秒数十万每秒数百万消息
TLS支持(默认端口:5671)支持(默认端口:5551)

互操作性

流使用 AMQP 1.0 消息格式存储消息。

  • RabbitMQ 流客户端库预期支持 AMQP 1.0 消息格式
  • 对于 AMQP 0.9.1 客户端,Broker 处理 AMQP 1.0 与 AMQP 0.9.1 之间的转换
  • AMQP 0.9.1、AMQP 1.0 和流客户端均可向同一流写入或从中读取消息。子条目批处理在不压缩的情况下受支持。
  • RabbitMQ 流支持 AMQP 1.0 消息格式的以下部分
    • properties
    • 应用属性 (application properties)
    • 应用数据 (application data)
    • 消息注解 (message annotations)

流客户端子条目批处理压缩选项

压缩在客户端完成。可用的压缩实现如下:

  • 无压缩
  • Gzip
  • Snappy
  • LZ4
  • Zstd

下表解释了部分 RabbitMQ 流协议客户端支持的选项

客户端支持无压缩GzipSnappyLZ4Zstd
Java
.NET通过接口通过接口通过接口
Go
Python通过接口通过接口通过接口
NodeJS
Rust
© . This site is unofficial and not affiliated with VMware.