Kafka1:Kafka简介

Kafka1:Kafka简介

1. 简介

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。
Kafka最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成关键任务应用

2. 消息队列

目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。

2.0 为什么需要消息队列 (MQ)

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多, 从而触发 too many connection 错误, 引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、Kafka 等。

2.1 传统消息队列的应用场景

传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信

2.1.1 缓存/消峰

notion image

2.1.2 解耦

notion image

2.1.3 异步通信

notion image

3. 消息队列两种模式

notion image

3.1 点对点模式

  • 一个生产者 ,一个消费者,一个topic 会删除数据
  • 消费者主动拉取数据,消息收到后清除消息
notion image

3.2 发布订阅

  • 多个生产者 消费者多个 相互对立 多个topic 不会删除数据
  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据
notion image