Kafka

概述

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据实时处理领域。

发布/订阅:消息的发布者不会讲消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息

Kafka最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

消息队列

目前企业中比较常见的消息队列产品主要有Kafka、Activemq、Rabbit MQ、Rocket MQ等。

在大数据场景主要采用Kafka作为消息队列。在Java EE开发中主要采用Active MQ、Rabbit MQ、Rocket MQ。

传统消息队列的应用场景

传统的消息队列的主要应用场景包括

  • 缓冲/削峰
  • 解耦
  • 异步通信

消息队列的两种模式

点对点模式

image-20230419212858955

发布/订阅模式

image-20230419213040193

Kafka基础架构

  1. 为方便扩展,并提高吞吐量,一个topic分为多个partition

  2. 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费

  3. 为提高可用性,为每个partition增加若干副本,类似Name Node HA

    image-20230419213714595

Kafka命令行操作

参数 描述
—bootstrap-server 连接的Kafka broker主机名称和端口号
—topic 操作的topic名称
—create 创建主题
—delete 删除主题
—alter 修改主题
—list 查看所有主题
—describe 查看主题详细描述
—partitions 设置分区数
—replication-factor 设置分区副本数
—config 更新系统默认的配置

查看当前服务器中的所有topic

bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list

创建first topic

bin/kafka-topics.sh --boot

文章作者: Tariq
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tariq !
 上一篇
2023-05-28 Tariq
下一篇 
2023-04-13 Tariq
  目录