Kafka开源代码阅读学习之旅(三) - Kafka安装与启动
1.环境需求
本人使用环境,仅供参考
- Vmware Workstation 16pro
- Ubuntu18.04镜像
- Docker
2.Kafka安装
Vmware workstation以及Ubuntu的安装不多赘述
需要提醒的一点是建议装上VMware tools,方便虚拟机与主机之间复制粘贴等等(很实用)。
有关VMware tools 的安装网上也有详细的教程,在此不多赘述。
2.1 Docker安装
首先安装curl
sudo apt install curl
安装命令,具体安装步骤见菜鸟教程Docker安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
一步到位,终端输入docker有结果输出即为成功
2.2 kafka安装与使用
首先拉取kafka以及zookeeper的镜像
docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper
如果报错权限不足,则在每个命令前加上sudo
出现以上即成功,加上开始pull的ubuntu镜像,我们现在一共有三个镜像
接下来启动zoomkeeper,否则启动kafka无法注册消息
docker run -it --name zookeeper -p 12181:2181 -d wurstmeister/zookeeper:latest
启动完成后,分别创建三台kafka容器,需要注意的是端口的映射注意都是映射到Kafka的9092端口上!否则将不能够连接!
四、kafka拓扑结构
一个典型的Kafka集群中包含若干Producer(可以是web前端FET,或者是服务器日志等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干ConsumerGroup,以及一个Zookeeper集群。Kafka通过Zookeeper管理Kafka集群配置:选举Kafka broker的leader,以及在Consumer Group发生变化时进行rebalance,因为consumer消费kafka topic的partition的offsite信息是存在Zookeeper的。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。
分析过程分为以下4个步骤:
- topic中partition存储分布
- partiton中文件存储方式 (partition在linux服务器上就是一个目录(文件夹))
- partiton中segment文件存储结构
- 在partition中如何通过offset查找message
通过上述4过程详细分析,我们就可以清楚认识到kafka文件存储机制的奥秘。
部分内容转自大佬文章