文件内容课堂总结

发布于:2025-05-01 ⋅ 阅读:(36) ⋅ 点赞:(0)

Apache Kafka最初由LinkedIn公司开发,后成为Apache项目的一部分。它是一种快速、可扩展的分布式消息系统。
消息系统对比:与传统消息系统(如ActiveMQ、RabbitMQ等)相比,Kafka是分布式的,具有更高的吞吐量和更好的可扩展性,支持多订阅者和消息持久化。
Kafka核心概念
Broker:安装了Kafka的节点。
Topic:消息的类别,物理上不同Topic的消息分开存储,逻辑上用户只需指定Topic即可生产或消费数据。
Partition:物理上的概念,每个Topic包含一个或多个Partition。 
Producer:负责发布消息到Kafka broker。
Consumer:消息消费者,向Kafka broker读取消息的客户端。
Consumer Group:每个Consumer属于一个特定的Consumer Group,消费者消费数据之后不会删除,数据可以被多个消费者使用。
Replica:partition的副本,保障partition的高可用。
Leader:replica中的一个角色,producer和consumer只跟leader交互。
Follower:replica中的一个角色,从leader中复制数据,数据备份,如果leader挂掉,顶替leader的工作。
Controller:Kafka集群中的其中一个服务器,用来进行leader election以及各种failover。
Kafka特性
高吞吐量、低延迟:每秒可以处理几十万条消息,延迟最低只有几毫秒。
可扩展性:集群支持热扩展。
持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。
容错性:允许集群中节点失败(若副本数量为n,则允许n - 1个节点失败)。
高并发:支持数千个客户端同时读写。
Kafka集群安装
前提条件:安装JDK和Zookeeper。
下载安装包:选择合适的Kafka版本和Scala版本。
配置修改
声明Broker编号,修改 server.properties 文件中的 broker.id 。
修改监听主机名和端口,如 listeners=PLAINTEXT://node01:9092 。
添加 delete.topic_enable=true 允许删除主题。
修改日志存放路径 log.dirs 。
设置分区数量 num.partitions 。
配置Zookeeper集群地址 zookeeper.connect 。
分发安装包:将安装包分发到其他节点,并修改各节点的 broker.id 和 listeners 中的主机名。
启动集群:先启动Zookeeper,再以后台守护进程启动Kafka,可配置环境变量实现一键启动。


网站公告

今日签到

点亮在社区的每一天
去签到