感谢老朱贡献的 原创 作品,Kafka作为分布式中间件,应用广泛。本文总结了安转Kafka的详细步骤,推荐给大家。
1
试想一种需求,网络爬虫爬取页面数据保存到数据库,为了效率你可能会启动多个爬虫一起工作,这个时候你的数据库可能就吃不消了一直处于爆满状态。
2
为了解决这个问题,你需要把爬虫数据缓存到一个地方,然后再不急不躁的插入到数据库中。这实际上就是一个典型的生产者消费模型,生产者生产过快导致消费者需要不停的消费,稍有不慎消费者罢工了还会导致产品丢失。如果在生产线上放置一个缓冲区,那么就可以不担心消费者程序挂掉,或者内存CPU资源一直被消费者程序占用。
Kafka就在这个模型中担任缓冲区的角色,Kafka是分布式消息中间件的一种,它有着轻量高吞吐量的优势,因此一直备受关注。
3
本文将采用docker容器作为实验的环境,虚拟机太占用资源。首先安装Docker,Docker为Windows、Mac都提供了安装包 Docker Desktop. 安装即可用,这个包涵了多个docker组件,包括 docker compose、docker swarm、docker-machine,有兴趣的可以深入了解一下。
1)、安装Docker Desktop
2)、拉取ubuntu系统,作为实验的操作系统
Docker pull ubuntu
3)、启动ubuntu系统,并进入
Docker run -it --name kafka ubuntu bash 进入
4)、下载kafka安装包
下载Kafka
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.11-2.3.0.tgz
将kafka拷贝到docker ubuntu 容器中
docker cp kafka_2.11-2.3.0.tgz kafka:/usr/local/kafka
tar -zxvf kafka_2.11-2.3.0.tgz
5)、配置JDK环境
下载JDK1.8 并拷贝到kafka容器中,并配置
6)、启动Kafka自带Zookeeper服务
启动ZK
bin/zookeeper-server-start.sh config/zookeeper.properties
7)、启动Kakfa环境
启动kafka
bin/kafka-server-start.sh config/server.properties
8)、创建topic 指定副本以及分区个数
另外启动控制台,通过docker exec -it kafka bash 进入容器中,创建一个topic z指定副本数为1,分区数为1,topic为test
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
9)、启动生产者Demo
开启kafka生产者进程,输入hello kafka
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
10)、启动消费者Demo
启动kafka消费者进程
4
总结:以上就是快速部署安装Kafka过程,很多理论不明白也没关系,因为笔者也是小白刚接触学习中,在配置过程中慢慢学习。
看到这么有趣的案例,我第一时间反应是能不能写个聊天系统啥的,因为当初使用Socket的时候是如此的麻烦。
/* 送书 */
6月30日文章,六月总结和思考留言就可能被赠书一本,恭喜「为人民服务」获得,留言走心且被点赞4次(留言区中最高)。
前几天我联合4个公众号送的30本Python数据分析书,全部名单也已经提交到出版社了,再次祝贺被抽中的小伙伴。
最后,再次感谢老朱,为我们贡献的Kafka教程,欢迎大家支持。
Python
机器学习
280
就等你来
点个在看