1. 概述
在本篇文章中,我将分享 Kafka 的基础知识——任何人都应该知道的用例和核心概念。然后我们就可以研磨关于Kafka更详细的知识。
2. 什么是Kafka
Kafka是由Apache软件基金会开发的开源流处理平台。 我们可以将其用作消息系统来解耦消息生产者和消费者,但与 ActiveMQ 等“经典”消息系统相比,它旨在处理实时数据流,并提供分布式、容错和高度可扩展的架构 用于处理和存储数据。
因此,我们可以在各种用例中使用它:
- 实时数据处理和分析
- 日志和事件数据聚合
- 监控和指标收集
- 点击流数据分析
- 欺诈识别
- 大数据管道中的流处理
3. 设置本地环境
如果我们是第一次接触 Kafka,我们可能希望本地安装来体验它的功能。 在 Docker 的帮助下我们可以快速实现这一点。
3.1 安装Kafka
下载现有镜像并使用以下命令运行容器实例:
docker run -p 9092:9092 -d bashj79/kafka-kraft
这将使所谓的 Kafka 代理在主机系统的端口 9092 上可用。现在,我们想使用 Kafka 客户端连接到代理。 我们可以使用多个客户端。
3.2 使用Kafka CLI
Kafka CLI 是安装的一部分,可在 Docker 容器中使用。 我们可以通过连接到容器的 bash 来使用它。
首先,我们需要使用以下命令找出容器的名称:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7653830053fa bashj79/kafka-kraft "/bin/start_kafka.sh" 8 weeks ago Up 2 hours 0.0.0.0:9092->9092/tcp awesome_aryabhata
在此示例中,名称为 Awesome_aryabhata。然后我们使用以下命令连接到 bash:
docker exec -it awesome_aryabhata /bin/bash
例如,现在我们可以创建一个主题(稍后我们将澄清这个术语)并使用以下命令列出所有现有主题:
cd /opt/kafka/bin
# create topic 'my-first-topic'
sh kafka-topics.sh --bootstrap-server localhost:9092 --create --topic my-first-topic --partitions 1 --replication-factor 1# list topics
sh kafka-topics.sh --bootstrap-server localhost:9092 --list# send messages to the topic
sh kafka-console-producer.sh --bootst