一、kafka原理
1、kafka是一个高性能的消息队列系统,能够处理大规模的数据流,并提供低延迟的数据传输,它能够以每秒数十万条消息的速度进行读写操作。
二、kafka优点
1、服务解耦
(1)提高系统的可维护性
通过服务解耦,可以将系统分解为独立的部分,当需要更新或修复某个服务时,可以独立地进行操作,而不会影响到其他服务的正常运作。这大大减少了维护工作的难度和所需时间。
(2)增强系统的可扩展性
解耦后的系统更容易扩展。添加新功能或服务通常不会影响现有系统的其他部分,从而快速响应市场和用户的需求变化。
2、高吞吐量、低延迟
kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。
3、可扩展性
集群支持热扩展(kafka-reassign-partitions.sh)分区重分配、迁移
4、持久性、可靠性
消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
5、容错性
允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
6、高并发
支持数千个客户端同时读写
三、主要概念
1. 主题 (Topic)
Kafka 中的消息以主题 (Topic) 为单位进行组织。每个主题代表一个消息流,消息生产者向主题发送消息,消息消费者从主题消费消息。
2. 分区 (Partition)
每个主题可以分为多个分区 (Partition),每个分区是一个有序、不可变的消息序列。分区的存在使得 Kafka 能够水平扩展,可以处理大量数据并提供高吞吐量。
3. 副本 (Replica)
为了保证数据的高可用性,Kafka 允许每个分区有多个副本 (Replica),这些副本存储在不同的服务器上。这样,即使某个服务器故障,数据仍然可用。
4. 生产者 (Producer)
生产者是向 Kafka 主题发送消息的客户端。生产者可以选择将消息发送到特定的分区,也可以让 Kafka 根据某种策略(如轮询)决定将消息发送到哪个分区。
5. 消费者 (Consumer)
消费者是从 Kafka 主题消费消息的客户端。消费者通常属于某个消费者组 (Consumer Group),一个消费者组中的多个消费者可以并行消费同一个主题的不同分区,提高消费速度和效率。
6. 经纪人 (Broker)
Kafka 集群由多个经纪人 (Broker) 组成,每个经纪人是一个 Kafka 实例。经纪人负责存储消息并处理消息的读写请求。
7. ZooKeeper
ZooKeeper 是一个分布式协调服务,Kafka 使用 ZooKeeper 来管理集群元数据,如主题、分区、经纪人等信息。
四、kafka安装教程
1、 点此链接进入官网下载地址
2、点击 图1红色方框DOWNLOAD KAFKA
图1
3、点击图2选中的链接下载即可
图2
3、将kafka解压到服务器后修改配置项kafka_2.13-4.0.0\config\zookeeper.properties
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "Lice