消息队列是生产者向消息队列发送消息,消费者从消息队列拉取(pull)消息。

  1. 生产者
    生产者是消息队列的数据源,可以向其发送消息,如字符串、二进制数据等。

  2. 消费者
    消费者的数据源就是Kafka,于是通过Kafka实现了生产者和消费者两个系统的解耦。

  3. broker
    部署了Kafka的server称为broker。Kafka分布式部署就有多台broker。

  4. 主题topic

  • topic是字符串,它将消息进行分类、存储
  • 多个生产者可以向同一个topic发送消息
  • 多个消费者可以订阅同一个topic
  • 每一条消息一定属于某一个topic
  • 一个topic可以包含多个消息
  • 通过topic可以实现生产者和消费者之间有针对性的发送和订阅
  1. 消息
  • 消息必须指定属于哪个topic
  • 由key和value构成。key用来将消息分配到topic的指定分区中。
  1. Kafka集群
    由多台broker组成,它们之间通过心跳检测其他机器状态。

  2. 控制器

  • 多台broker中会有一台broker作为控制器,它管理Kafka的分区、副本等。
  • 其他borker会监听控制器的状态,当前控制器异常时会使用选举算法选出新的控制权。
  1. 消费者组
  • 一个消费者只能属于一个消费者组
  • 单播:消费者组所订阅的topic只能由其中的一个消费者消费。订阅同一topic的多个消费者组互不影响。
  • 广播:多个消费者消费同一个topic,那它们一定属于不同的消费者组。
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐