当前位置: 首页 > news >正文

Kafka:安装与简单使用

文章目录

  • 下载安装
    • windows安装
      • 目录结构
      • 启动服务器
      • 创建主题
      • 发送一些消息
      • 启动消费者
      • 设置多代理集群
      • 常见问题
  • 工具
    • kafka tool
  • 常用指令
    • topic
    • 查看topic
    • 删除topic
  • 常见问题
  • 参考文献

下载安装

下载地址:kafka-download

windows安装

下载完后,找一个目录解压。

解压完成后,看看目录结构。

对于linux来讲,所有的启动文件都放在bin目录下,那一堆sh文件;

对于windows来讲,所有的启动文件放在bin\windows目录下,一堆bat文件。

需要到config目录下,找到server.properties文件,指定log目录:

log.dirs=D:\software\Kafka-2.6.3\kafka-logs

指定在kafka安装目录就可以。

目录结构

bin/
config/
libs/
licenses/
logs/
site-docs/

bin目录下放了一堆Kafka的启动文件,包括kafka启动文件、zookeeper启动文件。bin\windows目录下甚至还有一套给windows用的启动文件。

config目录下有一堆配置文件,包括kafka服务器的配置文件server.properties,以及ZooKeeper的配置文件zookeeper.properties等。

启动服务器

Kafka使用ZooKeeper,因此如果还没有ZooKeeper服务器,需要先启动一个。

Kafka的那一堆打包脚本里提供了一个简单的单节点ZooKeeper实例,cmd内调用:

D:\software\Kafka-2.6.3>.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

Zookeeper启动后,再启动Kafka服务器:

D:\software\Kafka-2.6.3>.\bin\windows\kafka-server-start.bat .\config\server.properties

到这里,Kafka服务器启动成功。

创建主题

创建一个主题,名为test,设定只有一个分区,保留一个副本。

bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

如果想查看当前的主题列表:

bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

除了手动创建主题以外,还可以将代理配置一下,设置成在发布不存在的主题时自动创建主题。

发送一些消息

Kafka带有一个命令行客户端,该客户端将从文件或者标准输入中获取输入,并将其作为消息发送到Kafka集群。

默认情况下,每行将作为单独的消息发送。

运行生产者,在控制台中输入一些消息以发送到服务器:

bin\windows\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test
>this is a message
>this is the other message
>

这时候用kafka tool查看就可以看到:

在这里插入图片描述

启动消费者

Kafka还有一个消费者命令行,可以将消息转存到标准输出:

bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

如图:

在这里插入图片描述

如果在不同的终端运行着生产者和消费者的命令行,那么现在应该能够在生产者终端中输入消息,并看到它们出现在消费者终端中。

所有命令行工具都有附加选项。之后可以记录查看。

设置多代理集群

在之前,我们的Kafka集群只有一个代理。虽然启动更多的代理并没有什么太大的作用,但是我们这里可以先感受一下(在本地机器上)将集群扩展为3个节点的方法:

首先我们需要为每个broker都创建一个配置文件(windows上用copy指令):

copy config\server.properties config\server-1.propertiescopy config\server.properties config\server-2.properties

然后分别编辑这几个配置文件,主要修改以下几个属性即可:

config/server-1.properties:broker.id=1listeners=PLAINTEXT://:9093log.dirs=/tmp/kafka-logs-1config/server-2.properties:broker.id=2listeners=PLAINTEXT://:9094log.dirs=/tmp/kafka-logs-2

默认的server.properties,broker.id=0,listener默认应该是9092。

broker.id,这个属性是每个代理的唯一名称,要保证不重复。

这里重写端口和日志目录,是因为我们需要在同一台机器上运行它们,所以要避免不同代理使用同一端口的情况。

之前我们已经启动了ZooKeeper和一个单节点,现在我们启用两个新来的节点:

.\bin\windows\kafka-server-start.bat .\config\server-1.properties &.\bin\windows\kafka-server-start.bat .\config\server-2.properties

启动之后,在kafka tool中可以看到:

在这里插入图片描述

broker已经变成3个了。

现在再创建一个复制因子为3的新主题:

bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic

既然我们现在有了一个集群,那我们怎么知道集群下每个代理都在做些什么?

使用describe指令:

bin\windows\kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic my-replicated-topic输出:
Topic: my-replicated-topic      PartitionCount: 1       ReplicationFactor: 3    Configs: segment.bytes=1073741824Topic: my-replicated-topic      Partition: 0    Leader: 0       Replicas: 0,2,1 Isr: 0,2,1

第一行给出了所有分区的摘要,之后每附加一行就给出一个分区的信息。

当前主题只有一个分区,所以只有一行。

  • leader:负责给定分区所有读取和写入的节点。每个节点都可能成为领导者;
  • replicas:副本,哪些节点复制了此分区的日志;
  • Isr:一组同步副本,是replicas的子集,当前存活,且进度跟leader一样;

在我们的示例中,my-replicated-topic 只有一个分区,分区下只有一个leader节点。

如果想在新主题下发布或者查看消息的话,跟之前一样,改改topic名就可以,比如说发布:

bin\windows\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic my-replicated-topic

如果我们这时候把leader节点关掉,也并不会影响整个集群的时候,kafka将在现有的可用节点里选择一个作为leader,原先的leader也将不会在同步副本集中。

2022-4-13 17:47:20 以上测试失败,集群崩掉了。。

常见问题

在kafka安装目录下,输入命令:

.\bin\windows\kafka-server-start.bat .\config\server.properties

结果报错:

输入行太长
语法错误

疑似原因是kafka目录建的太深了,原先我的kafka根目录位于磁盘下的四级目录,直接放在磁盘目录下就好了。

很神奇的问题,据说就是文件夹树的深度太深了。

工具

kafka tool

可视化查看kafka topic内容的工具

下载地址:https://www.kafkatool.com/download.html

安装后,双击.exe,启动工具就可以。

右键add 新链接,填写基本信息:

在这里插入图片描述

在这里插入图片描述

bootstrap servers多是限制只能用域名来访问,所以需要自己设置hosts。

C:\Windows\System32\drivers\etc 下的 hosts 文件中,添加入 kafka 的集群域名, 例如:

1xx.1xx.2xx.107 kafka1
1xx.1xx.2xx.108 kafka2

kafka tool支持的功能有很多,还可以模拟发送message,功能很丰富。

详细的功能,可以参照参考文献1。

常用指令

topic

查看topic

打印当前所有topic

kafka-topics.bat --bootstrap-server localhost:9092 --list

删除topic

2022-4-26 13:53:21 第一种方式好像不行,删完之后直接kafka打不开了。

2022-4-26 14:13:42 windows端删除topic就是有问题,每次删除必崩溃。我已经不敢动了。

彻底删除topic有两种方式:

  1. 删除kafka存储目录下相关topic目录。(即server.properties中对log.dirs的设置);
  2. 如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。
./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic此时你若想真正删除它,可以如下操作:(1)登录zookeeper客户端:命令:./bin/zookeeper-client(2)找到topic所在的目录:ls /brokers/topics(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,如果你删除了此处的topic,那么marked for deletion 标记消失

常见问题

The Cluster ID doesn’t match stored clusterId

去日志目录里把meta.properties删掉就好了,但是删完了之后,我的topic在kafka tool里都看不到了。。。。

参考文献

  1. Kafka 可视化工具
  2. kafka中文文档 不过是1.0的
  3. kafka官方文档 版本可选
  4. windows系统下启动kafka CMD报错:输入行太长,语法错误
  5. windows下安装kafka教程 这个没有按顺序写,第一次看没有注意到要启动ZooKeeper。。。吃大亏。
  6. kafka删除topic
  7. kafka API文档 很不错,灰常重要,关于kafka producer和consummer怎么用,就是从这里学到的。

相关文章:

Kafka:安装与简单使用

文章目录 下载安装windows安装目录结构启动服务器创建主题发送一些消息启动消费者设置多代理集群常见问题 工具kafka tool 常用指令topic查看topic删除topic 常见问题参考文献 下载安装 下载地址:kafka-download windows安装 下载完后,找一个目录解压…...

029-从零搭建微服务-消息队列(一)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):mingyue: 🎉 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…...

Python2020年06月Python二级 -- 编程题解析

题目一 数字转汉字 用户输入一个1~9(包含1和9)之间的任一数字,程序输出对应的汉字。 如输入2,程序输出“二”。可重复查询。 答案: 方法一 list1[一,二,三,四,五,六,七,八,九] while True:n int(input(请输入1~9之间任意一个数字…...

差分放大器的精髓:放大差模信号 抑制共模信号

参考如图基本的差分放大电路,在R1R2 R3R4的条件下,其输出与输入的关系为 : 具体推导过程参考:差分运算放大器的放大倍数的计算及结论_正在黑化的KS的博客-CSDN博客 由这个式子我们可以发现,差分放大器放大的是同相端与…...

蓝桥等考Python组别九级006

第一部分:选择题 1、Python L9 (15分) 运行下面程序,可以输出几行“*”?( ) for i in range(6): for j in range(7): print(*, end ) print() 5678 正确答案:B 2、Python …...

初级篇—第五章子查询

文章目录 什么是子查询需求分析与问题解决子查询的基本语法结构子查询的分类 单行子查询单行比较操作符代码示例HAVING 中的子查询CASE中的子查询子查询中的空值问题非法使用子查询 多行子查询多行比较操作符代码示例空值问题 相关子查询代码示例在ORDER BY 中使用子查询EXISTS…...

【AntDesign】封装全局异常处理-全局拦截器

[toc] 场景 本文前端用的是阿里的Ant-Design框架,其他框架也有全局拦截器,思路是相同,具体实现自行百度下吧 因为每次都需要调接口,都需要单独处理异常情况(code !0),因此前端需要对后端返回的…...

Visual Studio 代码显示空格等空白符

1.VS2010: 快捷键:CtrlR,W 2.VS2017、VS2019、VS2022: 工具 -> 选项 -> 文本编辑器 -> 显示 -> 勾选查看空白...

紫光同创FPGA图像视频采集系统,基于OV7725实现,提供工程源码和技术支持

目录 1、前言免责声明 2、设计思路框架视频源选择OV7725摄像头配置及采集动态彩条HDMA图像缓存输入输出视频HDMA缓冲FIFOHDMA控制模块HDMI输出 3、PDS工程详解4、上板调试验证并演示准备工作静态演示动态演示 5、福利:工程源码获取 紫光同创FPGA图像视频采集系统&am…...

京东大型API网关实践之路

概述 1、背景 京东作为电商平台,近几年用户、业务持续增长,访问量持续上升,随着这些业务的发展,API网关应运而生。 API网关,就是为了解放客户端与服务端而存在的。对于客户端,使开放给客户端的接口标准统…...

图像处理: 马赛克艺术

马赛克 第一章 马赛克的历史渊源 1.1 马赛克 艺术中的一种表面装饰,由紧密排列的、通常颜色各异的小块材料(如石头、矿物、玻璃、瓷砖或贝壳)组成。与镶嵌不同的是,镶嵌是将要应用的部件放置在已挖空以容纳设计的表面中&#xff0…...

postgresql-管理数据表

postgresql-管理数据表 创建表数据类型字段约束表级约束模式搜索路径 修改表添加字段删除字段添加约束删除约束修改字段默认值修改字段数据类型重命名字段重命名表 删除表 创建表 在 PostgreSQL 中,使用 CREATE TABLE 语句创建一个新表: CREATE TABLE …...

Llama2-Chinese项目:3.1-全量参数微调

提供LoRA微调和全量参数微调代码&#xff0c;训练数据为data/train_sft.csv&#xff0c;验证数据为data/dev_sft.csv&#xff0c;数据格式如下所示&#xff1a; "<s>Human: "问题"\n</s><s>Assistant: "答案举个例子&#xff0c;如下所…...

蓝桥等考Python组别十级001

第一部分:选择题 1、Python L10 (15分) 已知s = Hello!,下列说法正确的是( )。 s[1]对应的字符是Hs[2]对应的字符是ls[-1]对应的字符是os[3]对应的字符是o正确答案:B 2、Python L10 (15分) 运行下面程序,输入字符串“Banana”,输出的结果是&#x...

记录 Git 操作时遇到的问题及解决方案

目录 问题&#xff1a;git pull 时报错报错内容&#xff1a; ! [rejected] v1.0.3 -> v1.0.3 (would clobber existing tag)原因&#xff1a;本地 Git 仓库中已经存在名为 v1.0.3 和 v1.0.6 的标签了&#xff0c;而尝试从远程仓库&#xff08;GitHub&#xff09;拉取这些标签…...

第一届“龙信杯”电子数据取证竞赛Writeup

目录 移动终端取证 请分析涉案手机的设备标识是_______。&#xff08;标准格式&#xff1a;12345678&#xff09; 请确认嫌疑人首次安装目标APP的安装时间是______。&#xff08;标准格式&#xff1a;2023-09-13.11:32:23&#xff09; 此检材共连接过______个WiFi。&#x…...

Vue与React//双绑问题

Vue和React是两个目前最流行的前端框架&#xff0c;它们有一些区别主要区别如下&#xff1a; 响应式原理&#xff1a;Vue使用基于模板的方式进行双向绑定&#xff0c;其中使用了Vue自己实现的响应式系统。Vue能够通过追踪数据的依赖关系&#xff0c;自动更新DOM元素。而React采…...

信息安全第四周

社会工程学 社会工程学主要研究如何操纵人的心理和情感来获取机密信息或其他目标。它主要不是通过技术手段攻击计算机系统&#xff0c;而是通过心理学和人际交往技巧来欺骗人&#xff0c;使他们泄露密码、安全代码或其他敏感信息。社会工程学主要是一种安全风险&#xff0c;主要…...

机器学习基础概念与常见算法入门【机器学习、常见模型】

机器学习基础概念与算法 机器学习是计算机科学领域的一个分支&#xff0c;它致力于让计算机系统具备从数据中学习和改进的能力&#xff0c;而不需要显式地进行编程。与传统编程相比&#xff0c;机器学习有着根本性的不同之处。 机器学习与传统编程的不同 传统编程&#xff1…...

移动端 [Android iOS] 压缩 ECDSA PublicKey

移动端 [Android & iOS] 压缩 ECDSA PublicKey AndroidiOS 使用 Android KeyStore 和 iOS 的 Secure Enclave 提供的安全能力使用 P-256 来对 API 请求进行签名&#xff0c;服务器端再进行验证。 但是发现不论是 iOS 还是安卓都没有提供一个便捷的方式从 iOS 的SecKeyCopyE…...

Spring的配置Bean的方式

在Spring框架中&#xff0c;配置Bean有三种主要方式&#xff1a;自动装配、基于Java的显式配置和基于XML的显式配置。 1、自动装配&#xff1a; 自动装配是Spring容器根据Bean之间的依赖关系&#xff0c;自动将需要的Bean注入到目标Bean中。这是一种非常简便和快捷的配置方式&…...

安防监控/视频汇聚平台EasyCVR云端录像不展示是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…...

毛玻璃态登录表单

效果展示 页面结构组成 通过上述的效果展示可以看出如下几个效果 底部背景有三个色块并且效果是毛玻璃效果登录表单是毛玻璃效果登录表单的周围的小方块也是有毛玻璃效果并且与登录表单有层次效果 CSS3 知识点 filter 属性backdrop-filter 属性绝对定位属性动画属性 底部背…...

Java:使用 Graphics2D 类来绘制图像

目录 过程介绍创建一个 BufferedImage 对象创建一个 Graphics2D 对象绘制字符和干扰线将生成的图像保存到文件 示例代码 过程介绍 创建一个 BufferedImage 对象 首先创建一个 BufferedImage 对象来表示图像 创建一个 Graphics2D 对象 然后使用 createGraphics() 方法创建一…...

VUE2项目:尚品汇VUE-CLI脚手架初始化项目以及路由组件分析(一)

标题 环境VUE2目录publicassetscomponentsmain.jsbabel.config.jspackage.jsonvue.config.js 项目路由分析Header与Footer非路由组件完成Header示例 路由组件的搭建声明式导航编程式导航 Footer组件的显示与隐藏路由传递参数重写push和replace三级联动组件拆分附件 环境 前提要…...

输入网址input,提取标题和正文

https://m.51cmm.com/wz/WZnKubw1.html?share_token715beaff-33ef-466b-8b6c-092880b9a716&tt_fromcopy_link&utm_sourcecopy_link&utm_mediumtoutiao_android&utm_campaignclient_share - 【科学决策七步骤 - 希律心理】 - 今日头条 提取标题和正文input输…...

docker--redis容器部署及与SpringBoot整合

1. 容器化部署docker 拉取镜像创建数据目录data 及 配置目录conf创建配置文件redis.conf启动redis容器进入容器,进行Redis操作设置为自启动:docker update redis --restart=alwaysdocker pull redis:5.0.12docker run -d --rm --name my_redis -p 6379:6379 -v D:/docker/red…...

数据库:Hive转Presto(二)

继续上节代码&#xff0c;补充了replace_func函数&#xff0c; import re import os from tkinter import *class Hive2Presto:def __int__(self):self.t_funcs [substr, nvl, substring, unix_timestamp] \[to_date, concat, sum, avg, abs, year, month, ceiling, floor]s…...

docker安装apisix全教程包含windows和linux

docker安装apisix 一、Windows安装1、首先需要安装docker和docker compose&#xff0c;如果直接安装docker desktop&#xff0c;会自动安装docker compose。2、重新启动电脑3、访问 Docker 的下载&#xff08;[https://www.docker.com/products/docker-desktop](https://www.do…...

【C++进阶】:C++11

C11 一.统一列表的初始化1.{}初始化2.initializer_list 二.声明1.decltype2.nullptr 三.右值引用和移动语义1.左值和右值1.转义语句2.完美转发 四.可变参数模板1.基本概念2.STL里emplace类接口 五.lambda表达式六.新的类功能 一.统一列表的初始化 1.{}初始化 在C98中&#xf…...

seo技术快速网站排名/最近的热点新闻

据前程无忧的网上调查显示&#xff0c;尽管“金三银四”和“金九银十”的说法仍然存在&#xff0c;但近年来跳槽一族对跳槽时机的掌握明显已经灵活多了&#xff1a;超过一半&#xff08;50.11%&#xff09;的求职者认为何时跳槽并不重要&#xff0c;机会成熟了随时都可以行动&a…...

公司装修效果图办公室/网店seo关键词

很简单&#xff0c;这个问题是这样的&#xff0c;su 或者 su root&#xff1a;的话只是将当前身份转为root&#xff0c;用户shell并没有改变.所以有些系统命令不能使用. su -或者su -l或者su -l root,可以完全的将当前环境转为root环境.如同root直接登陆. 其次&#xff0c;serv…...

江苏备案网站名称/研究生培训机构排名

目录&#xff1a;企业微信API其他篇 01: 企业微信API开发前准备 02&#xff1a;消息推送 03: 通讯录管理 04&#xff1a;应用管理 目录&#xff1a; 1.1 概述 & 创建应用1.2 获取应用1.3 设置应用1.1 概述 & 创建应用 返回顶部 官方文档&#xff1a;http://work.we…...

企业网站打不开什么原因/百度指数属于行业趋势及人群

用过unity&#xff0c;ue4和cocos creator&#xff0c;就个人感受说一下&#xff1a; Unity只给了简单的光照烘培和cubemap反射以及球谐来做间接光照&#xff0c;其他都是用迪士尼的brdf来模拟像素反射。所以其他都需要自己造轮子。其实并不是unity不能做高端的效果&#xff0…...

有什么网站交互做的很好 知乎/福州百度推广电话

转载自https://mp.weixin.qq.com/s/MD2-xMWWXx7rpfWzd5XDxA 非常不错的总结 根据这几年的积累&#xff0c;整理了一份国内外学术界和工业界的牛人和大牛团队&#xff0c;供大家申请硕士、博士、博士后和找工作参考。 学校&#xff08;排名不分先后&#xff09;&#xff1a; 哈工…...

合肥市建设工程合同备案网站/怎样制作网页新手自学入门

初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的两张 1080Ti.服务器上的多张 GPU 都占满, 有点浪费性能.因此, 需要类似于 Caffe 等框架的可以设定 GPU ID …...