Kafka技术详解[2]: 环境安装

目录

 环境安装

 安装Java8(略)

 安装Kafka

 启动ZooKeeper

 启动Kafka

 消息主题

创建主题

 查询主题

 修改主题

 删除主题


 环境安装

作为一款开源分布式事件流处理平台,Kafka的分布式软件环境安装相对复杂,这不利于初学者的学习和练习。因此,我们首先搭建一个简单的Windows单机环境,以便初学者能够快速掌握Kafka的基本原理和用法。在后续博客中,我们将深入学习Kafka在生产环境中的安装和使用。

 安装Java8(略)

当前Java软件开发的主流版本是Java 8,而Kafka 3.x官方建议使用Java 11,但Java 8仍然适用。未来Kafka 4.x版本将会完全弃用Java 8。鉴于我们当前学习的是Kafka 3.6.1版本,因此使用Java 8即可,无需升级。由于Kafka的绝大多数代码都是用Scala编写,并且Scala基于Java开发,Kafka可以在JVM上直接运行,因此无需安装其他软件。假设您已经安装了Java 8并配置了基本的环境变量,故此处安装过程省略。

 安装Kafka
  • 下载软件安装包:kafka_2.12-3.6.1.tgz,下载地址:Apache Kafka

    • 3.6.1 是 Kafka 软件的版本,截至2023年12月24日,Kafka 最新版本为3.6.1。
    • 2.12 是对应的 Scala 开发语言版本,Scala 2.12 与 Java 8 兼容,可以直接使用。
    • tgz 是 Linux 系统中常见的压缩文件格式,类似于 Windows 系统中的 zip 和 rar 格式,在 Windows 环境中可以直接使用压缩工具进行解压缩。
  • 解压文件:kafka_2.12-3.6.1.tgz,解压目录为非系统盘的根目录,例如 E:/

为了访问方便,可以将解压后的文件目录改为 kafka,更改后的文件目录结构如下:

bin/
├── linux
│   └── (Linux 系统下可执行脚本文件)
├── windows
│   └── (Windows 系统下可执行脚本文件)
config/
├── (配置文件)
libs/
├── (依赖类库)
licenses/
├── (许可信息)
site-docs/
├── (文档)
logs/
└── (服务日志)
 启动ZooKeeper

当前版本的 Kafka 仍依赖 ZooKeeper 进行多节点协调调度,因此启动 Kafka 之前需先启动 ZooKeeper。但 Kafka 内置了 ZooKeeper,无需额外安装,直接调用脚本命令启动即可。

  • 进入 Kafka 解压缩文件夹的 config 目录,修改 zookeeper.properties 配置文件:

    # the directory where the snapshot is stored.
    # 修改 dataDir 配置,用于设置 ZooKeeper 数据存储位置,该路径如果不存在会自动创建。
    dataDir=E:/kafka_2.12-3.6.1/data/zk
  • 打开 DOS 窗口,进入 E:/kafka_2.12-3.6.1/bin/windows 目录。

  • 因为本章节演示的是 Windows 环境下 Kafka 的安装和使用,所以启动 ZooKeeper 软件的指令为 Windows 环境下的 .bat 批处理文件。调用启动指令时,需要传递配置文件的路径:

    # 因为当前目录为 windows,所以需要通过相对路径找到 zookeeper 的配置文件。
    zookeeper-server-start.bat ../../config/zookeeper.properties
  • 出现如下界面,ZooKeeper 启动成功。

  • 为了操作方便,也可以在 Kafka 解压缩后的目录中创建脚本文件 zk.cmd

    # 调用启动命令,且同时指定配置文件。
    call bin/windows/zookeeper-server-start.bat config/zookeeper.properties
 启动Kafka
  • 进入 Kafka 解压缩文件夹的 config 目录,修改 server.properties 配置文件:

    # Listener name, hostname and port the broker will advertise to clients.
    # If not set, it uses the value for "listeners".
    # 客户端访问 Kafka 服务器时,默认连接的服务为本机的端口 9092,如果想要改变,可以修改如下配置
    # 此处我们不做任何改变,默认即可
    #advertised.listeners=PLAINTEXT://your.host.name:9092# A comma separated list of directories under which to store log files
    # 配置 Kafka 数据的存放位置,如果文件目录不存在,会自动生成。
    log.dirs=E:/kafka_2.12-3.6.1/data/kafka
  • 打开 DOS 窗口,进入 E:/kafka_2.12-3.6.1/bin/windows 目录。

  • 调用启动指令,传递配置文件的路径:

    # 因为当前目录为 windows,所以需要通过相对路径找到 kafka 的配置文件。
    kafka-server-start.bat ../../config/server.properties
  • 出现如下界面,Kafka 启动成功。

  • 为了操作方便,也可以在 Kafka 解压缩后的目录中创建脚本文件 kfk.cmd

    # 调用启动命令,且同时指定配置文件。
    call bin/windows/kafka-server-start.bat config/server.properties
  • 在 DOS 窗口中输入 jps 指令,查看当前启动的软件进程:

    这里名称为 QuorumPeerMain 的就是 ZooKeeper 软件进程,名称为 Kafka 的就是 Kafka 系统进程。此时,说明 Kafka 已经可以正常使用了。

 消息主题

在消息发布/订阅(Publish/Subscribe)模型中,为了可以让消费者对感兴趣的消息进行消费,而不是对所有数据进行消费,定义了主题(Topic)的概念。即将不同的消息进行分类,分成不同的主题(Topic),然后消息生产者在生成消息时,会向指定的主题(Topic)中发送,而消息消费者也可以订阅自己感兴趣的主题(Topic)并从中获取消息。

有很多方式可以操作 Kafka 消息中的主题(Topic):命令行、第三方工具、Java API、自动创建。对于初学者而言,掌握基本的命令行操作是必要的。因此,接下来我们采用命令行进行操作。

创建主题
  • 启动 ZooKeeper,Kafka 服务进程(略)

  • 打开 DOS 窗口,进入 E:/kafka_2.12-3.6.1/bin/windows 目录。

  • DOS 窗口输入指令,创建主题:

    # Kafka 是通过 kafka-topics.bat 指令文件进行消息主题操作的。其中包含了对主题的查询、创建、删除等功能。
    # --bootstrap-server : 把当前的 DOS 窗口当成 Kafka 的客户端,那么进行操作前,就需要连接服务器,这里的参数表示服务器的连接方式,因为我们在本机启动 Kafka 服务进程,且 Kafka 默认端口为 9092,所以此处,后面接的参数值为 localhost:9092,用空格隔开。
    # --create : 表示对主题的创建操作,是个操作参数,后面无需增加参数值。
    # --topic : 主题的名称,后面接的参数值一般就是见名知意的字符串名称,类似于 Java 中的字符串类型标识符名称,当然也可以使用数字,只不过最后还是当成数字字符串使用。
    # 指令
    kafka-topics.bat --bootstrap-server localhost:9092 --create --topic test
 查询主题
  • DOS 窗口输入指令,查看所有主题:

    # Kafka 是通过 kafka-topics.bat 文件进行消息主题操作的。其中包含了对主题的查询、创建、删除等功能。
    # --bootstrap-server : 把当前的 DOS 窗口当成 Kafka 的客户端,那么进行操作前,就需要连接服务器,这里的参数表示服务器的连接方式,因为我们在本机启动 Kafka 服务进程,且 Kafka 默认端口为 9092,所以此处,后面接的参数值为 localhost:9092,用空格隔开。
    # --list : 表示对所有主题的查询操作,是个操作参数,后面无需增加参数值。
    # 指令
    kafka-topics.bat --bootstrap-server localhost:9092 --list
  • DOS 窗口输入指令,查看指定主题信息:

    # --bootstrap-server : 把当前的 DOS 窗口当成 Kafka 的客户端,那么进行操作前,就需要连接服务器,这里的参数表示服务器的连接方式,因为我们在本机启动 Kafka 服务进程,且 Kafka 默认端口为 9092,所以此处,后面接的参数值为 localhost:9092,用空格隔开。
    # --describe : 查看主题的详细信息。
    # --topic : 查询的主题名称。
    # 指令
    kafka-topics.bat --bootstrap-server localhost:9092 --describe --topic test
 修改主题

创建主题后,可能需要对某些参数进行修改,那么就需要使用指令进行操作。

  • DOS 窗口输入指令,修改指定主题的参数:
    # Kafka 是通过 kafka-topics.bat 文件进行消息主题操作的。其中包含了对主题的查询、创建、删除等功能。
    # --bootstrap-server : 把当前的 DOS 窗口当成 Kafka 的客户端,那么进行操作前,就需要连接服务器,这里的参数表示服务器的连接方式,因为我们在本机启动 Kafka 服务进程,且 Kafka 默认端口为 9092,所以此处,后面接的参数值为 localhost:9092,用空格隔开。
    # --alter : 表示对主题的修改操作,是个操作参数,后面无需增加参数值。
    # --topic : 修改的主题名称。
    # --partitions : 修改的配置参数:分区数量。
    # 指令
    kafka-topics.bat --bootstrap-server localhost:9092 --topic test --alter --partitions 2
 删除主题

如果主题创建后不再需要,或创建的主题有问题,可以通过相应的指令删除主题。

  • DOS 窗口输入指令,删除指定名称的主题:
    # Kafka 是通过 kafka-topics.bat 文件进行消息主题操作的。其中包含了对主题的查询、创建、删除等功能。
    # --bootstrap-server : 把当前的 DOS 窗口当成 Kafka 的客户端,那么进行操作前,就需要连接服务器,这里的参数表示服务器的连接方式,因为我们在本机启动 Kafka 服务进程,且 Kafka 默认端口为 9092,所以此处,后面接的参数值为 localhost:9092,用空格隔开。
    # --delete : 表示对主题的删除操作,是个操作参数,后面无需增加参数值。默认情况下,删除操作是逻辑删除,也就是说数据存储的文件依然存在,但是通过指令查询不出来。如果想要直接删除,需要在 server.properties 文件中设置参数 delete.topic.enable=true。
    # --topic : 删除的主题名称。
    # 指令
    kafka-topics.bat --bootstrap-server localhost:9092 --topic test --delete

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.Branch-and-Bound 方法

Branch-and-Bound 方法 Branch-and-Bound(分支限界)是一种用于解决优化问题的算法框架,尤其适用于组合优化问题,如整数规划、旅行商问题(TSP)、指派问题等。该方法通过系统地搜索解空间树来找到问题的最优…

Python 管理 AWS ElastiCache 告警

在 AWS 环境中,监控和管理 ElastiCache 集群的性能是至关重要的。本文将介绍如何使用 Python 和 AWS SDK (boto3) 来自动创建和删除 ElastiCache 集群的 CloudWatch 告警。我们将分两部分来讨论:创建告警和删除告警。 第一部分:创建 ElastiCache 告警 首先,让我们看看如何…

[spring]springboot日志

文章目录 一. 日志的用途二. 打印日志三. 日志框架门面模式(外观模式)SLF4J框架介绍 四. 日志格式日志级别配置日志级别日志持久化配置日志文件分割配置日志格式 五. 更简单的日志输出 一. 日志的用途 二. 打印日志 得到日志对象: 需要使用日志工厂LoggerFactory RestControl…

【小程序】uniapp自定义图标组件可动态更换svg颜色

组件描述 通过图标名称加载对应svg,size参数调整图标大小,color参数调整图标颜色 解决思路: 存svg获svg,对象方式正则替换svg的fill值,不改变源文件,通过base64直接加载缓存svg源文件,避免重…

聚铭下一代智慧安全运营中心荣获CNNVD兼容性资质证书

近日,聚铭网络旗下安全产品——聚铭下一代智慧安全运营中心正式通过了国家信息安全漏洞库(CNNVD)兼容性认证测试,荣获国家信息安全漏洞库兼容性资质证书。 关于CNNVD兼容性 国家信息安全漏洞库(CNNVD)是…

2003-2022年各省区域创新能力评价相关指标数据(报告年份2003-2022年)

2003-2022年各省区域创新能力相关指标数据(报告年份2003-2022年) 1、来源:2003-2022年中国区城创新能力评价报告 2、指标:综合值、知识创造综合指标、研究开发投人综合指标、专利综合指标、科研论文综合指标、知识获取综合指标、…

CSS02-字体属性、文本属性

一、字体属性 CSS Fonts(字体)属性用于定义字体系列、大小、粗细、和文字样式(如斜体)。 1-1、font-family属性 当font-family有多个值的时候,代码会依次查找当前系统中存在哪种字体,有则使用,没有则查找下一个字体。 1-2、font-size属性 1-3…

解决ArmDS Fast Models 中部分内核无法上电的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型,只有Core 0是上电状态,而Core 1处于掉电状态,如图2-1所示&…

重修设计模式-结构型-享元模式

重修设计模式-结构型-享元模式 复用不可变对象,节省内存 享元模式(Flyweight Pattern)核心思想是通过共享对象方式,达到节省内存和提高性能的目的。享元对象需是不可变对象,因为它会被多处代码共享使用,要避…

Llama3:全模型GQA与tiktoken分词的新突破

在本篇文章中,我们将介绍Llama3模型,并且对比它与Llama2在模型层面上的主要区别。Llama3 相较于Llama2的最显著变化是引入了全模型GQA(Grouped Query Attention)机制,并且在分词阶段使用了与GPT一致的 tiktoken 分词方…

揭秘银企对账,让财务对账不再头疼

揭秘银企对账,让财务对账不再头疼! 银企对账,作为企业与银行间重要的财务互动环节,也在不断地向自动化和智能化方向演进。接下来将逐步的探讨银企对账系统的核心功能、操作流程以及它如何帮助企业提升财务管理效率和准确性。 可以…

AI大模型日报#0923:李飞飞创业之后首个专访、华为云+腾讯音乐发布昇腾适配方案

导读:AI大模型日报,爬虫LLM自动生成,一文览尽每日AI大模型要点资讯!目前采用“文心一言”(ERNIE-4.0-8K-latest)、“智谱AI”(glm-4-0520)生成了今日要点以及每条资讯的摘要。欢迎阅…

基于单片机无线智能报警系统的设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

计算机毕业设计 基于Python的荣誉证书管理系统 Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

2024全球超模大赛(北京|山东|内蒙三城联动)顺利举办

近日,2024 全球超模大赛(北京|山东|内蒙)三城联动暨新国潮文化赛事主题发布会在紫薇美力集团国贸鲁采赋盛大举行。此次发布会旨在鼓励优质模特共同传播中国传统文化,让其在全球范围内绽放光彩,展现中国人的骄傲与风采&…

用Python提取PowerPoint演示文稿中的音频和视频

将多种格式的媒体内容进行重新利用(如PowerPoint演示中的音频和视频)是非常有价值的。无论是创建独立的音频文件、提取视频以便在线分发,还是为了未来的使用需求进行资料归档,从演示文稿中提取这些媒体文件可以为多媒体内容的多次…

基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示,设置电流阈值为80,电流小阈值为50,电压阈值为60,温度阈值为30 随便哪个超过预祝,则继电器切断,LE…

C语言编译四大阶段

目录 一、引言 二、预处理阶段 三、编译阶段 四、汇编阶段 五、链接阶段 六、总结 本文将详细介绍C语言编译的四个阶段,包括预处理、编译、汇编和链接。通过学习这些阶段,读者可以更好地理解C语言程序的编译过程,提高编程效率。 一、引…

【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">参数列表[逗号模式]<el-too…

专题·大模型安全 | 生成式人工智能的内容安全风险与应对策略

正如一枚硬币的两面&#xff0c;生成式人工智能大模型&#xff08;以下简称“生成式大模型”&#xff09;在助力内容生成的同时也潜藏风险&#xff0c;成为虚假信息传播、数据隐私泄露等问题的温床&#xff0c;加剧了认知域风险。与传统人工智能&#xff08;AI&#xff09;相比…