首页 > 其他分享 >kafka下载、安装与部署

kafka下载、安装与部署

时间:2023-12-28 19:13:01浏览次数:57  
标签:KAFKA 部署 zookeeper Kafka connect HOME kafka 下载

1.kafka简介

kafka官网地址:https://kafka.apache.org/

kafka的本质 是一个数据存储平台,流平台 , 只是他在做消息发布,消息消费的时候我们可以把他当做消息中间件来用。

Kafka提供了一个Kafka Broker、一个Kafka Producer和一个Kafka Consumer。

以下介绍源自:文心一言。

Kafka Broker在Kafka中扮演着重要的角色,主要作用如下:

  • 接收生产者的消息:Kafka Broker接收来自生产者的消息。
  • 为消息设置偏移量:Kafka Broker为每条消息设置偏移量,用于标识每条消息的位置。
  • 提交消息到磁盘保存:Kafka Broker将消息提交到磁盘上保存,保证消息不会因为意外情况丢失。
  • 为消费者提供服务:Kafka Broker为消费者提供服务,对消费者的请求作出响应。
  • 返回已经提交到磁盘上的消息:Kafka Broker返回已经提交到磁盘上的消息给消费者。

Kafka Producer是负责向Kafka服务端写入数据的程序,主要作用如下:

  • 地位和作用:Producer是Kafka中产生消息的一端,可以将消息生产到多个Topic中,也可以多个Producer将消息生产到同一个Topic中(容易造成消息顺序的混乱),同时Producer还可以决定将此消息存储在哪个partition中(通过partitioner)。
  • 产生消息:消息准备发送的过程中,Producer将会和选定Topic下所有的Partition leader保持socket连接;消息由Producer直接通过Socket发送到Broker中而不通过中介任何的路由层,而生产者会自动找到Partition对应的Leader,然后对leader执行消息追加的操作。
  • 负载均衡:Producer可以平衡发送压力。
  • 同步/异步发送:使用异步发送消息将会以少量的额外延迟换取大额的吞吐量。

Kafka Consumer是用于读取Kafka集群中某些Topic消息的应用程序,是Kafka的核心组件之一,主要作用如下:

  • 消费消息:Consumer将Producer生产的消息进行消费处理,完成消费任务。
  • 消费方式:Consumer采用主动拉取Broker数据的方式进行消费,即Pull模式。
  • 消费者组:Consumer用一个消费者组名来标记自己,topic的每条消息都只会被发送到每个订阅它的消费者组的一个Consumer实例上。
  • 重平衡机制:如果Consumer实例增减或发生故障,Consumer组会重新分配订阅关系,保证每条消息至少被一个Consumer实例处理。

另外,kafka作为消息中间件时,与以往的消息中间件不同的是:以往的消息中间件消费完,这条数据就消失了。

而kafka是将消息存储到了本地磁盘当中,即使消费完也不会消失,而是通过偏移量offset用来标识消费进度(Kafka具有存储功能,默认保存数据时间为7天或者大小1G,也就是说Kafka broker上的数据超7天或者1G,将会被自动删除。)。

  • Broker : 和AMQP里协议的概念一样, 就是消息中间件所在的服务器
  • Topic(主题) : 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
  • Partition(分区) : Partition是物理上的概念,体现在磁盘上面,每个Topic包含一个或多个Partition.
  • Producer : 负责发布消息到Kafka broker
  • Consumer : 消息消费者,向Kafka broker读取消息的客户端。
  • Consumer Group(消费者群组) : 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
  • offset 偏移量: 是kafka用来确定消息是否被消费过的标识,在kafka内部体现就是一个递增的数字。

2.下载与安装

下载

下载页:https://kafka.apache.org/downloads

一般情况下,我们下载最新版就可以了。

点击上方提供的连接进行下载即可。

如:https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz

安装

下载完成,使用解压软件进行解压即可使用。

zookeeper配置文件说明

为什么要讲zookeeper?因为kafka的运行依赖于zookeeper,详细原因下面会讲到。

找到KAFKA_HOME/config目录下的zookeeper.properties。

最重要的就是以下两个属性的配置。

上面是默认配置,一般情况下,我们无需进行修改。

dataDir属性:配置的是zookeeper运行数据的存储路径,/tmp/zookeeper代表的意思是:

linux:数据存储在:/tmp/zookeeper目录下,windows:数据存在KAFKA_HOME所在磁盘的/tmp/zookeeper目录下。

当目录不存在时,会自动被创建。

clientPort属性:配置的是zookeeper运行时所占用的端口号,默认值是:2181。

kafka配置文件说明

找到KAFKA_HOME/config目录下的server.properties。

一个kafka服务器就是一个broker。

broker.id属性:属性值具有唯一性,在集群部署kafka的时候,作为区分broker的标识,默认值为:0。

如果你不需要集群部署时(只用一个kafka),不用管这个参数。

但在继续部署时(同时运行多个kafka),我们需要它们的broker.id各不相同(唯一值)。

listeners属性:设置的是kafka服务器的访问端口号,默认值是9092。

如何更改它的端口号呢?

listeners=PLAINTEXT://:9082

在此配置文件当中增加如上代码, 我们就把broker的端口号改成9082啦。

log.dirs属性:该属性配置的是kafka运行日志存储路径,/tmp/kafka-logs表达的含义是:

linux:数据存储在:/tmp/kafka-logs目录下,windows:数据存在KAFKA_HOME所在磁盘的/tmp/kafka-logs目录下。

当目录不存在时,会自动被创建。

说明:想懒省事儿的话,上面的属性均采用默认值即可。

3.部署

说明:启动kafka要先启动zookeeper。

看了很多教程,都教你需要单独下载zookeeper,这纯属扯淡。

kafka默认自带了zookeeper,何必再画蛇添足呢。

Apache ZooKeeper是一个分布式的、开源的分布式应用程序协调服务,它主要用于分布式系统中的状态同步和管理。

在Kafka中,ZooKeeper的作用主要体现在以下几个方面:

  • 元数据管理:Kafka将所有元数据,如主题、分区、消费者偏移量等,都存储在ZooKeeper中。这使得Kafka能够跟踪和管理其主题和消费者的状态。
  • 集群管理:ZooKeeper用于协调和管理Kafka集群中的Broker。例如,ZooKeeper负责处理Broker的加入和离开,以及集群的领导者选举。
  • 配置管理:Kafka的一些配置信息,如Broker的ID、端口号等,也存储在ZooKeeper中。
  • 主题和分区的管理:ZooKeeper存储了主题和分区的元数据,包括主题的配置信息和分区映射。
  • 消费者管理:ZooKeeper用于跟踪消费者的状态,包括消费者的组信息和消费者的偏移量。
  • 故障转移:如果Kafka集群中的某些Broker出现故障,ZooKeeper可以帮助进行故障转移,确保集群的可用性。

总的来说,ZooKeeper为Kafka提供了可靠的状态管理和协调功能,使得Kafka能够作为一个高性能、可扩展、可靠的流处理平台运行。

启动zookeeper服务

windows操作步骤

zookeeper的启动命令是:zookeeper-server-start.bat

文件所在路径:KAFKA_HOME/bin/windows

和以往的启动步骤不同,你会发现:双击运行这个文件是无法运行成功的(直接闪退)。

为什么会闪退?

那是因为它的启动需要指定我们之前看的配置文件:zookeeper.properties。

具体启动指令如下:

切换到KAFKA_HOME/bin/windows目录下,输入:cmd,按Enter键,即可打开黑窗口。

输入指令:

zookeeper-server-start.bat ../../config/zookeeper.properties

按Enter键即可运行。

当出现如上字样时,zookeeper就启动成功啦。

访问路径:

http://localhost:2181/

如果运行报错:输入行太长,解决办法见文末推荐。

linux操作步骤

zookeeper的启动命令是:zookeeper-server-start.sh

文件所在路径:KAFKA_HOME/bin

打开操作窗口,切换到KAFKA_HOME/bin/windows目录下。

输入指令:

 

启动kafka服务(broker)

windows操作步骤

broker的启动命令是:kafka-server-start.bat

文件所在路径:KAFKA_HOME/bin/windows

 

同样的,kafka-server-start.bat的运行离不开配置文件:server.properties。

server.properties所在路径:KAFKA_HOME/config/server.properties。

再次打开命令窗口。

启动命令:

kafka-server-start.sh ../../config/server.properties

当出现如上字样时,broker就启动成功啦。

访问路径:

http://localhost:9092/

 

linux操作步骤

broker的启动命令是:kafka-server-start.sh

文件所在路径:KAFKA_HOME/bin

打开操作窗口,切换到KAFKA_HOME/bin目录下。

输入指令:

 

4.kafka connect 

Kafka Connect是一个可扩展的、可插拔的数据传输框架,它可以连接Kafka和其它系统。

这是一个配置其它组件完成数据的发布和订阅的插件,换言之就是:当我们只有这种需求的时候,才需用到这个项服务。

kafka connect配置文件说明

找到KAFKA_HOME/config目录下的connect-standalone.properties和connect-distributed.properties文件。

connect-standalone.properties:当只有一个kafka服务器时,我们需要使用这个配置文件。

connect-distributed.properties:当存在多个kafka服务器时(集群部署),我们需要使用这个配置文件。

以connect-standalone.properties为例:

说明:如果是connect-distributed.properties,这里可以配置多个broker地址,中间使用逗号隔开。

bootstrap.servers属性:指定broker服务器的地址,默认值为:localhost:9092。

offset.storage.file.filename属性:设置偏移量文件connect.offsets的存放地址,默认路径为:/tmp。

linux:connect.offsets存储在:/tmp目录下,windows:connect.offsets存在KAFKA_HOME所在磁盘的/tmp目录下。

当目录不存在时,会自动被创建。

offset.flush.interval.ms属性:偏移量刷新时间间隔,单位:毫秒,默认值为:10000毫秒(10秒)。

plugin.path属性:设置connect插件的存放路径,多个路径之间使用逗号隔开。

在启动kafka connect时,会自动从上面配置的路径,读取connect插件。

一般情况下,我们不在这里配置,而是将插件直接放在:KAFKA_HOME/plugins目录下。

listeners属性:设置的是kafka connect服务器的访问端口号,默认值是8083。

多个地址之间使用逗号隔开。

如何更改它的端口号呢?

listeners=HTTP://:8093

在此配置文件当中增加如上代码, 我们就把kafka connect的端口号改成8093啦。

启动kafka connect

前提:已经启动好了kafka server。

以只运行一个broker进行举例说明

windows操作步骤

broker的启动命令是:connect-standalone.bat。

文件所在路径:KAFKA_HOME/bin/windows

所需配置文件:connect-standalone.properties。

文件所在路径:KAFKA_HOME/config

同样打开黑窗口,运行以下指令:

connect-standalone.bat ../../config/connect-standalone.properties

当出现如上字样时,就说明:kafka connect服务启动成功了。

访问地址:

http://localhost:8083/

3.6.1是kafka服务器的版本号。 

linux操作步骤

broker的启动命令是:connect-standalone.sh。

文件所在路径:KAFKA_HOME/bin

所需配置文件:connect-standalone.properties。

文件所在路径:KAFKA_HOME/config

5.便捷启动

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

标签:KAFKA,部署,zookeeper,Kafka,connect,HOME,kafka,下载
From: https://www.cnblogs.com/Marydon20170307/p/17933358.html

相关文章

  • Steam自建服务器教程之SteamCMD的下载和安装
     一、SteamCMD是干嘛的?SteamCMD 是 Steam 客户端的命令行版本。方便开发者管理Steam游戏服务器和下载游戏文件、更新游戏内容等。如果是你想要在Steam自建服务器,进行二次开发,SteamCMD是必需工具。今天飞飞将和你分享不同系统下载和安装SteamCMD的方法,希望可以帮助到你~ ......
  • kafka-Kafka3.4版本创建topic出现zookeeper is not a recognized option
    问题描述:在linux云服务器上搭建了一套kafka3.0集群,然后按照以前的创建topic指令:./kafka-topics.sh--zookeeperhadoop01:2181,hadoop02:2181,hadoop03:2181--replication-factor1--partitions1--topictest然而,却出现了这样一个异常提示:Exceptioninthread"main"jopt......
  • Databend 部署与运维概要:本地部署 Meta 服务并利用 Kubernetes 管理 Query 服务
    本指南旨在介绍如何部署和运维Databend,并且采用结合本地部署Meta服务和使用K8s管理Query服务的形式,以平衡元数据管理持久化和计算资源弹性调度的需求。由于Databend的部署逻辑在单机模式和集群模式下的一致性,部署模式可以从单机轻松拓展到多节点集群,所以本指南中只基于......
  • `pip` 和 `pip3` 是 Python 的包管理工具,它们可以用来查找、下载、安装和卸载 Python
    `pip`和`pip3`是Python的包管理工具,它们可以用来查找、下载、安装和卸载Python包¹。这两个命令的区别主要取决于你的系统中安装的Python版本¹³⁴⁵:-如果你的系统中只安装了Python2,那么只有`pip`可以使用³。-如果你的系统中只安装了Python3,那么`pip`和`pi......
  • PM2部署DotNet应用程序
    pm2简介PM2是一个Node.js的进程管理工具,可以帮助开发者简化Node.js应用的部署和运维。它提供了进程守护、负载均衡、日志管理等功能,可以监控应用程序的运行状态,并在发生意外情况时自动重启应用。PM2还支持多种部署方式,包括单机部署、集群模式和Docker容器部署,适用于各种规模的项......
  • 魔搭+ 函数计算: 一键部署,缩短大模型选型到生产的距离
    引言面对魔搭ModelScope社区提供的海量模型,用户希望快速进行选型并生产使用起来,但在此之前,却一定会面临算力管理难、模型部署难等一系列问题,那么能否实现快速把选定的模型部署在云端功能强大的GPU上,由云端负责服务,扩展,保护和监控模型服务,同时免于运维和管理云上算力等基础设施......
  • 不需要本地部署大模型,modelscope-agent加qwen-max免费搭建自己的定制机器人
    最近阿里开源了通用大模型qwen-72b,正在为怎么本地化部署发愁,转眼看到提供了qwen-max相关接口的免费试用(据说就是基于qwen-72b大模型),这就来体验一番。1.前期准备开通阿里云灵积平台,并创建api-key2.环境搭建python:3.10+;pydantic2.0以上,老版本pydantic会报一个tool_sche......
  • 手部关键点检测1:手部关键点(手部姿势估计)数据集(含下载链接)
    手部关键点检测1:手部关键点(手部姿势估计)数据集(含下载链接)目录手部关键点检测1:手部关键点(手部姿势估计)数据集(含下载链接)1.前言2.手部检测数据集:(1)Hand-voc1(2)Hand-voc2(3)Hand-voc3 (4)手部目标框可视化效果 3.手部关键点数据集(1)HandPose-v1(2)HandPose-v2(3)HandPose-v3(4)手部关......
  • xxl_job系列---【快速独立部署xxl-job,集xxl-job-admin和executor为一体】
    1.背景我们项目在用xxl-job的时候,只是用到了简单的定时调度http接口功能,所以,为了减少业务工程的侵入性,我决定把executor(执行器)集成到xxl-job-admin中,这样,我们只用部署一个jar包就实现了一个定时调度服务。我们只用在业务工程中写好任务,通过http对外提供服务,xxl-job使用GLUE(Jav......
  • 【flink番外篇】6、flink的WaterMark(介绍、基本使用、kafka的水印以及超出最大允许延
    文章目录Flink系列文章一、maven依赖二、示例-Flink1.13.6版本:kafka数据源,每10s统计一次地铁进站每个入口人数1、maven依赖2、实现1)、javabean2)、实现3、验证1)、验证步骤2)、验证三、示例-Flink1.17.0版本:kafka数据源,每10s统计一次地铁进站每个入口人数1、maven依赖2、实现1)、j......