前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >老朱:Kafka入门教程(1)

老朱:Kafka入门教程(1)

作者头像
double
发布2019-07-17 16:11:13
4310
发布2019-07-17 16:11:13
举报
文章被收录于专栏:算法channel

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


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档