消息队列 | 青训营笔记

74 阅读2分钟

1. Kafka

Apache Kafka 是一个分布式流处理平台,它能够处理高吞吐量、可扩展性强、低延迟的实时数据流。它最初由 LinkedIn 开发,后来成为 Apache 项目的一部分。

基本概念:  Kafka 的核心概念包括:Producer(生产者)、Broker(消息代理)、Consumer(消费者)和 Topic(主题)。

  • Producer:负责产生数据并将其发送到 Kafka 集群中的某个 Topic。
  • Broker:Kafka 集群中的节点,负责存储和转发消息。
  • Consumer:订阅并消费来自 Kafka 集群中某个 Topic 的消息。
  • Topic:消息的类别,Producer 将消息发送到某个 Topic,Consumer 从某个 Topic 订阅消息。

特点:

  • 高吞吐量
  • 可扩展性强
  • 低延迟
  • 数据持久化
  • 分布式

适用场景:  Kafka 适用于大数据、实时数据流处理、日志收集、监控等场景。

2. RabbitMQ

RabbitMQ 是一个开源的、基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息队列系统。它支持多种协议和消息模式,具有良好的可扩展性和可靠性。

基本概念:  RabbitMQ 的核心概念包括:Producer(生产者)、Exchange(交换器)、Queue(队列)和 Consumer(消费者)。

  • Producer:负责产生消息并将其发送到 Exchange。
  • Exchange:消息的转发器,根据绑定规则将消息路由到相应的 Queue。
  • Queue:存储消息的缓冲区。
  • Consumer:订阅并消费来自 Queue 的消息。

特点:

  • 多协议支持
  • 多种消息模式
  • 高可用性
  • 插件丰富

适用场景:  RabbitMQ 适用于多种场景,如异步任务处理、系统解耦、流量削峰等。

3. RocketMQ

Apache RocketMQ 是一个分布式、高性能、可扩展的消息队列系统。它支持 Pub/Sub(发布/订阅)和 P2P(点对点)两种模式,并提供了多种高级功能。

基本概念:  RocketMQ 的核心概念包括:Producer(生产者)、Broker(消息代理)、Consumer(消费者)和 Topic(主题)。

  • Producer:负责产生数据并将其发送到 RocketMQ 集群中的某个 Topic。
  • Broker:RocketMQ 集群中的节点,负责存储和转发消息。
  • Consumer:订阅并消费来自 RocketMQ 集群中某个 Topic 的消息。
  • Topic:消息的类别,Producer 将消息发送到某个 Topic,Consumer 从某个 Topic 订阅消息。

特点:

  • 高性能
  • 可扩展性强
  • 多种消息模式
  • 高级功能支持

适用场景:  RocketMQ 适用于大数据、实时数据流处理、日志收集、监控等场景。