Linux安装kafka(单主机部署)

Kafka 是一个开源的分布式流处理平台,最初由 LinkedIn 开发,后捐献给 Apache 软件基金会并成为顶级项目。它以高吞吐量、高可靠性、高扩展性和低延迟为核心特点,主要用于处理实时数据流,广泛应用于日志收集、消息队列、数据同步、实时分析等场景。

kafka的介绍

一、Kafka 的核心概念

理解 Kafka 需先掌握以下核心术语:

  1. Broker( broker 节点)
    Kafka 集群由多个服务器节点组成,每个节点称为一个 Broker。
    Broker 负责存储消息、处理生产者和消费者的请求,并维护消息的持久化存储(默认存储在磁盘)。
    单个 Broker 可管理多个 Topic,集群中 Broker 数量越多,整体吞吐量和容错能力越强。
  2. Topic(主题)
    Topic 是消息的分类容器,所有消息都必须发送到指定的 Topic 中,消费者也只能从特定 Topic 中读取消息。
    例如:一个电商平台可能有 user-logs(用户行为日志)、order-events(订单事件)等多个 Topic。
    Topic 是逻辑概念,物理上消息分散存储在多个 Broker 中。
  3. Partition(分区)
    每个 Topic 可划分为多个 Partition(分区),分区是 Kafka 并行处理的基本单位。
    分区特点:
    分区内的消息是有序的(按发送顺序存储,每个消息有唯一偏移量 offset 标识位置)。
    不同分区之间的消息顺序不保证。
    分区数量越多,Topic 的并行处理能力越强(可分配到不同 Broker 上)。
  4. Replication(副本)
    为保证数据可靠性,每个 Partition 可以有多个 Replica(副本),其中一个是Leader 副本,其余是Follower 副本。
    Leader 副本:负责处理生产者和消费者的读写请求。
    Follower 副本:同步 Leader 副本的数据,当 Leader 故障时,从 Follower 中选举新的 Leader,实现容错。
    副本数量由 replication-factor 配置(如 --replication-factor 1 表示无冗余,生产环境通常设为 2-3)。
  5. Producer(生产者)
    负责向 Kafka Topic 发送消息的客户端,可指定发送到哪个 Partition(或由 Kafka 自动分配)。
    生产者可配置消息确认机制(如 acks=1 表示 Leader 接收后确认,acks=all 表示所有副本同步后确认),平衡可靠性和性能。
  6. Consumer(消费者)
    从 Kafka Topic 读取消息的客户端,需指定消费的 Topic 和 Broker 地址。
    消费者组(Consumer Group):多个消费者可组成一个组,共同消费一个 Topic 的消息,同一条消息只会被组内一个消费者消费(实现负载均衡)。
    消费者通过 offset 记录消费位置,支持从指定位置(如 --from-beginning 从开头)或最新位置消费。

二、Kafka 的核心优势

高吞吐量:
基于分区并行处理、磁盘顺序写入(避免随机 IO)、零拷贝(直接通过操作系统传输数据)等机制,单机可轻松支持每秒数十万条消息。
高可靠性:
通过副本机制实现数据冗余,Leader 故障后自动切换,保证数据不丢失(配置 acks=all 时)。
高扩展性:
支持动态增加 Broker、Partition 数量,无需停机即可扩展集群能力。
低延迟:
消息从生产到消费的延迟可控制在毫秒级,适合实时数据处理场景。
持久化存储:
消息默认持久化到磁盘,可配置保留时间(如 7 天),支持历史数据回溯消费。

安装kafka

kafka的官网下载地址
这里我下载的是这个版本
上传kafka安装包到 cd /soft目录下
解压安装包

tar -zxvf kafka_2.12-3.9.1.tgz -C /opt/

解压
给文件改名

mv kafka_2.12-3.9.1 kafka
cd /opt/kafka
#启动kafka自带zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
#启动Kafka服务器(开第二个终端)
bin/kafka-server-start.sh config/server.properties

在这里插入图片描述

配置环境变量

vi /etc/profile
# 在末尾添加Kafka 环境变量
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# 使配置生效
source /etc/profile
# 查看kafka是否起来
ps -ef | grep kafka

在这里插入图片描述

验证

# 创建主题
bin/kafka-topics.sh --create --bootstrap-server master:9092 --replication-factor 1 --partitions 1 --topic test
# 查看主题列表
bin/kafka-topics.sh --list --bootstrap-server master:9092
#发送消息
bin/kafka-console-producer.sh --bootstrap-server master:9092 --topic test

在这里插入图片描述

# 查看消费消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

在这里插入图片描述
这里我们可以看到刚刚发送的消息,配置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值