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,可配置环境变量实现一键启动。
文件内容课堂总结
2025/5/9 19:05:28
来源:https://blog.csdn.net/2301_79975534/article/details/147618468
浏览:
次
关键词:文件内容课堂总结
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com