【Kafka安装】

编程入门 行业动态 更新时间:2024-10-27 07:21:28

【<a href=https://www.elefans.com/category/jswz/34/1769633.html style=Kafka安装】"/>

【Kafka安装】

我是🌟廖志伟🌟,一名🌕Java开发工程师🌕、📝Java领域优质创作者📝、🎉CSDN博客专家🎉、🌹幕后大佬社区创始人🌹。拥有多年一线研发经验,研究过各种常见框架中间件的底层源码,对于大型分布式微服务、三高架构(高性能高并发高可用)有过实践架构经验。

🍊博主:java_wxid
🍊博主:Java廖志伟
🍊社区:幕后大佬


文章目录

    • Kafka
      • 一、Kafka是什么?
      • 二、Docker安装kafka
      • 三、安装包安装kafka
        • 一、安装JDK
        • 二、安装Zookeeper
        • 三、安装Kafka
        • 四、启动并验证kafka
          • 启动kafka
          • 进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树
          • 校验kafka
            • 创建主题
            • 查看kafka中目前存在的topic
            • 发送消息
            • 消费消息
            • 消费之前的消息
        • Kafka可视化管理工具kafka-manager

本文内容:

Kafka


一、Kafka是什么?

定义:Kafka是一个基于zookeeper协调的分布式、多副本的(replica)、支持分区的(partition)系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写的项目。


二、Docker安装kafka

Kafka是用Scala语言开发的,运行在JVM上,在安装Kafka之前需要先安装JDK。

yum install java-1.8.0-openjdk* -y

下载zookeeper镜像

docker pull wurstmeister/zookeeper

开放端口

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=2181/tcp
systemctl restart docker

启动镜像生成容器

docker run -dit --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper \
-p 2181:2181 \
-v /etc/localtime:/etc/localtime \
-t wurstmeister/zookeeper

下载kafka镜像

docker pull wurstmeister/kafka

开放端口

firewall-cmd --add-port=9092/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=9092/tcp
systemctl restart docker

启动kafka镜像生成容器

docker run -dit --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=172.21.17.47:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.21.17.47:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka

参数说明:

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=ip:2181/kafka 配置zookeeper管理kafka的路径ip:2181/kafka,ip地址改为内网ip
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092 把kafka的地址端口注册给zookeeper,ip地址改成内网ip
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

验证kafka是否可以使用

进入容器

docker exec -it kafka bash

进入 /opt/kafka_2.13-2.7.1/bin/ 目录下

cd /opt/kafka_2.13-2.7.1/bin/

运行kafka生产者发送消息

./kafka-console-producer.sh --broker-list 106.14.132.94:9092 --topic sun

发送消息

{"datas[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}

运行kafka消费者接收消息

./kafka-console-consumer.sh --bootstrap-server 106.14.132.94:9092 --topic sun --from-beginning

停止zookeeper和kafka

docker stop zookeeper
docker rm zookeeper
docker stop kafka
docker rm kafka

三、安装包安装kafka

一、安装JDK


yum install java-1.8.0-openjdk* -y

二、安装Zookeeper


进入到/home目录下,下载zookeeper
wget .5.8/apache-zookeeper-3.5.8-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
cd apache-zookeeper-3.5.8-bin/
cp conf/zoo_sample.cfg conf/zoo.cfg
cd /home/apache-zookeeper-3.5.8-bin/bin
./zkServer.sh start
./zkCli.sh
ls /

打印结果:

[zk: localhost:2181(CONNECTED) 5] ls /
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, kafka, latest_producer_id_block, log_dir_event_notification, zookeeper]
[zk: localhost:2181(CONNECTED) 6] 

三、安装Kafka


进入到/home目录下,下载kafka
wget .4.1/kafka_2.11-2.4.1.tgz
tar -xzf kafka_2.11-2.4.1.tgz
cd /home/kafka_2.11-2.4.1/config
vim config/server.properties

配置文件编辑

#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://内网ip:9092   
#kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=内网ip:2181

如果填写外网ip可能会遇上这种情况:

四、启动并验证kafka

启动kafka
/home/kafka_2.11-2.4.1/bin/kafka-server-start.sh config/server.properties &
进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树
/home/apache-zookeeper-3.5.8-bin/bin/zkCli.sh
ls /
ls /brokers/ids
校验kafka
创建主题
/home/kafka_2.11-2.4.1/bin/kafka-topics.sh --create --zookeeper 106.14.132.94:2181 --replication-factor 1 --partitions 1 --topic test
查看kafka中目前存在的topic
/home/kafka_2.11-2.4.1/bin/kafka-topics.sh --list --zookeeper 106.14.132.94:2181
发送消息
/home/kafka_2.11-2.4.1/bin/kafka-console-producer.sh --broker-list 106.14.132.94:9092 --topic test 
this is a msg
消费消息
/home/kafka_2.11-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server 106.14.132.94:9092--topic test
消费之前的消息
/home/kafka_2.11-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server 106.14.132.94:9092 --from-beginning --topic test


通过jps命令查看运行的情况

Kafka可视化管理工具kafka-manager


安装及基本使用可参考:Java廖志伟


总结

以上就是今天要讲的内容,还希望各位读者大大能够在评论区积极参与讨论,给文章提出一些宝贵的意见或者建议📝,合理的内容,我会采纳更新博文,重新分享给大家。

🙏四连 关注🔎点赞👍收藏⭐️留言📝

感谢大家的支持,用心写博文分享给大家,你的支持(🔎点赞👍收藏⭐️留言📝)是对我创作的最大帮助。
🍊微信公众号:南北踏尘
🍊主页地址:java_wxid
🍊社区地址:幕后大佬

给读者大大的话

我本身是一个很普通的程序员,放在人堆里,除了与生俱来的🌹盛世美颜🌹、所剩不多的发量,就剩下180的大高个了。就是我这样的一个人,默默坚持写博文也有好多年了,有句老话说的好,🌕牛逼之前都是傻逼式的坚持🌕。希望自己可以通过大量的作品,时间的积累,个人魅力、运气和时机,可以打造属于自己的🌟技术影响力🌟。同时也希望自己可以成为一个🎄懂技术🎄,🎄懂业务🎄,🎄懂管理🎄的综合型人才,作为项目架构路线的总设计师,掌控全局的🌕团队大脑🌕,技术团队中的🍊绝对核心🍊是我未来几年不断前进的目标。


提示:以下都是资源分享,求个一键三连。

面试资料

福利大放送,🎉欢迎关注🔎点赞👍收藏⭐️留言📝,拜托了🙏,这对我真的很重要。
点击:面试资料
提取码:2021

200套PPT模板

福利大放送,🎉欢迎关注🔎点赞👍收藏⭐️留言📝,拜托了🙏,这对我真的很重要。
点击:200套PPT模板
提取码:2021

提问的智慧

福利大放送,🎉欢迎关注🔎点赞👍收藏⭐️留言📝,拜托了🙏,这对我真的很重要。
点击:提问的智慧
提取码:2021

Java开发学习路线

名称链接
JavaSE点击: JavaSE
MySQL专栏点击: MySQL专栏
JDBC专栏点击: JDBC专栏
MyBatis专栏点击: MyBatis专栏
Web专栏点击: Web专栏
Spring专栏点击: Spring专栏
SpringMVC专栏点击: SpringMVC专栏
SpringBoot专栏点击: SpringBoot专栏
SpringCould专栏点击: SpringCould专栏
Redis专栏点击: Redis专栏
Linux专栏点击: Linux专栏
Maven3专栏点击: Maven3专栏
Spring Security5专栏点击: Spring Security5专栏
更多专栏更多专栏,请到 java_wxid主页 查看

P5学习路线图
P6学习路线图
P7学习路线图
P8学习路线图

以上四张图详细介绍了作为Java开发工作者所需要具备的知识技能,同学们学废了嘛,有想法系统学习的同学可以私聊我,🎉欢迎关注🔎点赞👍收藏⭐️留言📝。
🍊博主:java_wxid
🍊博主:Java廖志伟
🍊社区:幕后大佬

更多推荐

【Kafka安装】

本文发布于:2023-06-23 16:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/851424.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Kafka

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!