老朱:Kafka入门教程(1)

感谢老朱贡献的原创作品,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的时候是如此的麻烦。


原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2019-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券