Kafka在Linux下载安装及部署

article/2025/9/23 1:59:17

前期准备工作:

    kafka的安装及使用需要用到ZooKeeper,所以需要提前安装搭建好ZooKeeper

    ZooKeeper在Linux下载安装及部署:

Zookeeper在Linux下载安装及部署_学弟不想努力了-CSDN博客_zookeeper下载安装linuxhttps://blog.csdn.net/Eternal_Blue/article/details/94762494

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

kafka的安装及部署

一、官网下载 kafka.tgz 包

我这里安装的版本:kafka_2.12-2.2.0.tgz

Kafka官网下载地址:Apache Kafka 

或下载地址: Index of /apache/kafka

二、将下载好的kafka_2.12-2.2.0.tgz包丢到服务器上任意一个你能找到的地方

三、在/usr路径下创建一个文件夹kafka

[root@ZhangJiakou ~]# mkdir /usr/local/kafka

四、解压压缩包到 /usr/kafka目录下

[root@ZhangJiakou ~]# tar -zxvf kafka_2.12-2.2.0.tgz -C /usr/local/kafka

五、在 /usr/local/kafka/kafka_2.12-2.2.0 新建一个文件夹 kafka-logs

[root@ZhangJiakou ~]# mkdir /usr/local/kafka/kafka_2.12-2.2.0/kafka-logs

六、修改kafka的配置文件

在kafka主目录下 bin/config 或 bin/config/kraft文件夹中找到  server.properties 并进行修改

[root@ZhangJiakou kafka_2.12-2.2.0]# vim bin/config/server.properties

注意:kafka在启动服务之前,在server.properties文件中要设定3个参数:    broker.id、log.dirs、zookeeper.connect

broker.id=0log.dirs=/usr/local/kafka/kafka_2.12-2.2.0/kafka-logszookeeper.connect=localhost:2181delete.topic.enble=trueadvertised.listeners=PLAINTEXT://localhost:9092

 delete.topic.enble=true  :这段代码会对以后删除kafka中的topic有影响,这段代码在文件尾部添加上即可

listeners=PLAINTEXT://:9092 :这个命令也很重要,需要记住(这个命令在文章里先不做分析)

advertised.listeners=PLAINTEXT://自己的主机ip地址:9092:这个localhost我用的是主机ip地址

七、配置kafka环境变量,配置zookeeper 和 kafka的全局命令 

    方法一:修改 profile 文件 (我使用的该方法,也推荐用这一种,两钟区别需自行查阅相关资料)

[root@ZhangJiakou ~]# vim /etc/profile

    直接在最下面添加下面这些配置

export KAFKA_HOME=/usr/local/kafka/kafka_2.12-2.2.0
export PATH=KAFKA_HOME/bin:$PATH

    使配置生效

[root@ZhangJiakou ~]# source /etc/profile

    方法二:修改 .bashrc 文件

    输入命令修改环境变量

[root@ZhangJiakou ~]# vim ~/.bashrc

     直接在最下面添加下面这些配置

export KAFKA_HOME=/usr/local/kafka/kafka_2.12-2.2.0
export PATH=KAFKA_HOME/bin:$PATH

     使配置生效

[root@ZhangJiakou ~]# source ~/.bashrc

八、验证kafka是否已经生效

    验证环境变量是否配置成功,

[root@ZhangJiakou ~]# echo $KAFKA_HOME

   

    验证输入kafka- 后按teb键是否会自动补全

[root@ZhangJiakou ~]# kafka-

kafka的使用

一、启动 Zookeeper 服务,在 kafka 的根目录下使用命令

Kafka用到了Zookeeper,先开启zookeeper,再开启Kafka (依次开启

下面用一个单实例的Zookkeeper服务,可以在命令结尾处加个&符号,这样就可以启动后离开控制台(进程守护),启动kafak命令同理

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/zookeeper-server-start.sh config/zookeeper.properties &

二、启动 kafka,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-server-start.sh config/server.properties &

三、创建一个 topic ,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic1

四、查看 kafka 的 topic 情况,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --list --zookeeper localhost:2181

--zookeeper  localhost:2181"是什么意思?    

--zookeeper: kafka连接zookeeper的url,和server.properties文件中的配置项 zookeeper.connect=localhost:2181 一致

五、描述 topic,查看topic的详细信息,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic1

六、生产消费

  生产消息,生产者客户端命令,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic1

这里的  --broker-list localhost:9092

  进入 生产消息的编辑模式,进行编辑并发送

>hello,world
>this is my kafka

消费消息,消费者客户端命令,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning

    消费消息如下:

hello,world
this is my kafka

七、删除 topic,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topic1

 或者

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 127.0.0.1:2181 --topic topic1

     删除topic 补充  ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

问题:

对 topic1 进行删除操作后,再次查看topic的时候,topic1 没有直接删除,而且后面出现了 “marked for deletion” ,只是将 topic1 标记了删除

解决:(通过查阅各种解决方案,整理了下面这种解决方案)

如果没有在kafka/config/server.properties配置:delete.topic.enable=true时,执行topic的删除命令只是把topic标记为marked for deletion,并不是真正的删除,如果此时想彻底删除,就需要登录zookeeper客户端进行删除

    启动zookeeper客户端,在zookeeper根目录下使用命令:

[root@ZhangJiakou apache-zookeeper-3.5.5]# ./bin/zkCli.sh

    找到topic所在的目录,在zookeeper客户端输入这个命令

ls /brokers/topics

      删除需要彻底删除的 topic1,在zookeeper客户端输入这个命令

deleteall /brokers/topics/topic1

rmr 命令已经被废弃了,可以执行 deleteall 命令

    可以再次查看确认一下,在zookeeper客户端输入这个命令

ls /brokers/topics

在 config/server.properties 中找到log.dirs

删除log.dirs指定的文件目录,然后重新启动

八、通过下面命令验证,发现已经删除了。在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --list --zookeeper localhost:2181

九、关闭服务

    先关闭Kafka,在 kafka 的根目录下使用命令

[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-server-stop.sh

    再关闭Zookeeper,在 Zookeeper 的根目录下使用命令

[root@ZhangJiakou apache-zookeeper-3.5.5]# ./bin/zkServer.sh stop

    验证一下是否关闭

jps:查看当前运行的进程
jps -m:查看当前运行进程的详细信息

[root@ZhangJiakou ~]# jps

有问题,有错误及时提出来,共同进步~~

注意:在实际项目中使用,记住hostname需要配置

kafka的相关案例

如何轻松在SpringBoot中正确配置并运行Kafka?​​​​​​​

如何轻松在SpringBoot中正确配置并运行Kafkaicon-default.png?t=M4ADhttps://blog.csdn.net/Eternal_Blue/article/details/125293622


http://chatgpt.dhexx.cn/article/97ECuNJF.shtml

相关文章

Kafka的常用命令(包括:下载安装、后台启动)

一、环境准备 首先JDK要在1.8及以上;然后安装对应版本的zookeeper。 本文以kafka2.7.2为例,关于如何找到kafka对应的zookeeper版本,参考我的这篇文章:如何确定kafka与zookeeper版本的对应关系。 1、安装Zookeeper3.5.9 Zookeep…

Kafka在windows下下载、启动、测试详细教程

目录 下载地址 启动 启动zookeeper 启动kafka 队列操作 创建消息队列名 删除消息队列名 查看所有的队列 测试 生产测试 消费测试 下载地址 Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/downloadswindows下kafka3.0版本的…

kafka 下载安装

文章目录 第一章 kafka概述一、定义二、消息队列1、传统消息队列2、消息队列的两种模式(1)点对点模式(2)发布/订阅模式 三、kafka基础架构 第二章 Kafka安装一、安装部署1、集群规划 二、集群部署1、下载地址(1&#x…

kafka下载与安装教程

Kafka下载安装教程 1.定义2.特性3.使用场景4.1.下载jar包4.2.解压到指定的文件夹4.3.修改配置文件4.4.启动kafka内置的zookeeper4.5.启动kafka服务4.6.创建一个名为 test1 的tiopic的测试主体 kafka4.7.创建生产消息的生产者4.8.创建消息消费者接收消息 1.定义 Kafka传统定义&…

CSRF(跨站请求伪造)原理

什么是CSRF? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF&#xff…

Spring Security跨站请求伪造(CSRF)

CSRF(Cross Site Request Forgery) 跨站点请求伪造。是攻击者欺骗用户的浏览器去访问一个自己曾经认证过的网站。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了 web 中用户身份验证的一个漏洞&#xff1a…

解决Csrf跨站请求伪造

Csrf跨站请求伪造原理: 1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请…

web渗透测试----14、CSRF(跨站请求伪造攻击)

文章目录 一、CSRF概述二、CSRF攻击条件1、相关操作2、基于Cookie的会话处理3、没有不可预测的请求参数 三、CSRF的防御1、验证请求的Referer值2、CSRF Token3、验证码等验证业务过程的方式 四、基于Token的CSRF1、CSRF令牌的验证取决于请求方法2、CSRF令牌的验证取决于令牌是否…

跨站请求伪造漏洞

首先说明一下什么是CSRF(Cross Site Request Forgery)? 跨站请求伪造是指攻击者可以在第三方站点制造HTTP请求并以用户在目标站点的登录态发送到目标站点,而目标站点未校验请求来源使第三方成功伪造请求。 为什么会有CSRF? JS控制浏览器发送请求的时…

DVWA---跨站请求伪造CSRF

CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况…

CSRF 跨站请求伪造攻击

1.概念 全称是CSRF 跨站请求伪造攻击,攻击者利用用户已登陆的账号,诱导用户访问已构造好的恶意链接或页面,在用户不之情的情况下,做一些违反用户本意的一些违法操作。 同源策略:协议相同,域名相同&#xf…

CSRF-跨站请求伪造的原理与修复方式

CSRF: Cross site Request Forgery 跨站请求伪造 原理: 利用xss方式注入一段脚本,通过伪装来自受信任用户的请求来利用受信任的网站,当受害者在浏览器中运行该脚本时,脚本仿冒受害者,向合法的web系统发送一个请求&…

web基础漏洞之CSRF(跨站请求伪造漏洞)

cookie session token 我觉得在开始学习CSRF之前应该先学会区分这三种东西:cookie session token cookie: Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户…

Laravel框架之CSRF跨站请求伪造

一、CSRF攻击 1、什么是CSRF攻击 CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写, 原理图示: csrf在laravel框架中的使用,就是在客户端form表单中设置一个_token表单域 同时把该表单域的值记录给sessi…

什么是CSRF(跨站请求伪造)?

文章目录 1. CSRF是什么?1.1 CSRF攻击细节CSRF攻击原理及过程如下: 2. CSRF漏洞检测3. 防御CSRF攻击:3.1 验证 HTTP Referer 字段3.1.1 优点:3.1.2 缺点: 3.2 在请求地址中添加 token 并验证3.3 在 HTTP 头中自定义属性并验证 1. …

WordPress 跨站请求伪造漏洞

WordPress 跨站请求伪造漏洞 漏洞ID2500593漏洞类型跨站请求伪造发布时间2021-07-08更新时间2021-07-09 CVE编号CVE-2021-20781 CNNVD-IDCNNVD-202107-420漏洞平台N/ACVSS评分N/A 漏洞简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台。该平台支持在PHP和My…

056 CSRF跨站请求伪造

文章目录 一: 概述二:关键点三:目标四:CSRF攻击如何触发?五:实战:CSRF场景复现六:CSRF防御6.1 无效的防御6.2 有效的防御 一: 概述 跨站请求伪造(cross site…

CSRF - 跨站请求伪造

什么是CSRF? CSRF(Cross-site request forgery)跨站请求伪造:也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS)&a…

CSRF(跨站请求伪造)

目录 CSRF 原理及过程 概述 关键点 pikachu靶场之CSRF GET型 POST型 Token 防御 如何挖掘CSRF漏洞 使用burp验证csrf 总结 CSRF (Cross-Site Request Forgery) CSRF是一种欺骗受害者提交恶意请求的攻击,攻击者盗用你的身份,向服务器发送请求…

Spring Boot项目CSRF (跨站请求伪造)攻击演示与防御

CSRF ,Cross-site request forgery,跨站请求伪造。是常见的网络攻击的方式之一,2007年曾被列为互联网20大安全隐患之一。攻击过程是攻击者伪造用户的浏览器请求,访问一个用户曾经访问过的网站, 使目标网站误以为是用户的操作而执行命令。 本篇j基于Spring Boot创建项目,…