首页 > 其他分享 >Apache Kafka 使用示例

Apache Kafka 使用示例

时间:2024-10-14 22:35:57浏览次数:8  
标签:bin 示例 -- server kafka sh Apache Kafka

Kafka快速入门指南

image

  • 微信公众号:阿俊的学习记录空间
  • 小红书:ArnoZhang
  • wordpress:arnozhang1994
  • 博客园:arnozhang
  • CSDN:ArnoZhang1994

第一步:获取Kafka

下载2.13-3.8.0版本的Kafka版本并解压:

$ tar -xzf kafka_2.13-3.8.0.tgz
$ cd kafka_2.13-3.8.0

第二步:启动Kafka环境

注意:你的本地环境必须安装Java 8及以上版本。

Apache Kafka可以通过KRaft模式或ZooKeeper模式启动。请按照以下其中一个配置启动Kafka,不要同时使用两者。

使用KRaft启动Kafka

Kafka可以通过KRaft模式启动,使用本地脚本和下载的文件或Docker镜像。选择以下其中一种方式启动Kafka服务:

使用已下载的文件

  1. 生成集群UUID
$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
  1. 格式化日志目录
$ bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
  1. 启动Kafka服务器
$ bin/kafka-server-start.sh config/kraft/server.properties

使用ZooKeeper启动Kafka

按照以下顺序启动所有服务:

  1. 启动ZooKeeper服务:
$ bin/zookeeper-server-start.sh config/zookeeper.properties
  1. 打开另一个终端,启动Kafka代理服务:
$ bin/kafka-server-start.sh config/server.properties

所有服务成功启动后,你将拥有一个基本的Kafka环境,准备使用。

使用基于JVM的Apache Kafka Docker镜像

  1. 获取Docker镜像:
$ docker pull apache/kafka:3.8.0
  1. 启动Kafka Docker容器:
$ docker run -p 9092:9092 apache/kafka:3.8.0

使用基于GraalVM的原生Apache Kafka Docker镜像

  1. 获取Docker镜像:
$ docker pull apache/kafka-native:3.8.0
  1. 启动Kafka Docker容器:
$ docker run -p 9092:9092 apache/kafka-native:3.8.0

Kafka服务器成功启动后,你将拥有一个基础Kafka环境,准备使用。

第三步:创建用于存储事件的主题

Kafka是一个分布式事件流平台,它可以在多台机器上读取、写入、存储和处理事件(文档中也称为记录或消息)。在编写事件之前,必须创建一个主题。打开另一个终端,运行以下命令:

$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

你可以使用以下命令来查看新主题的分区数量等详细信息:

$ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

第四步:向主题中写入事件

运行控制台生产者客户端,将一些事件写入主题。每输入一行数据,就会将其作为独立事件写入主题:

$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
>This is my first event
>This is my second event

随时可以按Ctrl-C停止生产者客户端。

第五步:读取事件

打开另一个终端,运行控制台消费者客户端来读取刚创建的事件:

$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
This is my first event
This is my second event

你可以按Ctrl-C随时停止消费者客户端。

第六步:使用Kafka Connect进行数据导入/导出

Kafka Connect可以让你持续从外部系统中摄取数据到Kafka,反之亦然。在此快速入门中,我们将演示如何使用简单的连接器将数据从文件导入Kafka主题,并将数据从Kafka主题导出到文件。

编辑 config/connect-standalone.properties 文件,添加以下配置:

$ echo "plugin.path=libs/connect-file-3.8.0.jar" >> config/connect-standalone.properties

然后创建一些测试数据:

$ echo -e "foo\nbar" > test.txt

接着,运行两个连接器,启动Kafka Connect:

$ bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

第七步:使用Kafka Streams处理事件

Kafka Streams允许你在Java/Scala中实现实时应用程序和微服务,处理存储在Kafka中的数据。例如,实现WordCount算法:

KStream<String, String> textLines = builder.stream("quickstart-events");
KTable<String, Long> wordCounts = textLines
    .flatMapValues(line -> Arrays.asList(line.toLowerCase().split(" ")))
    .groupBy((keyIgnored, word) -> word)
    .count();
wordCounts.toStream().to("output-topic", Produced.with(Serdes.String(), Serdes.Long()));

第八步:终止Kafka环境

你可以按Ctrl-C停止生产者和消费者客户端,Kafka代理和ZooKeeper服务。若要删除所有数据:

$ rm -rf /tmp/kafka-logs /tmp/zookeeper /tmp/kraft-combined-logs

标签:bin,示例,--,server,kafka,sh,Apache,Kafka
From: https://www.cnblogs.com/arnozhang/p/18466126

相关文章

  • Apache Kafka的生态
    Kafka生态系统微信公众号:阿俊的学习记录空间小红书:ArnoZhangwordpress:arnozhang1994博客园:arnozhangCSDN:ArnoZhang1994以下是与Kafka集成的工具列表,涵盖了不同领域的工具和扩展。这些工具并非全部经过验证使用,部分可能不兼容或存在问题。KafkaConnectKafk......
  • Apache Kafka各Api模块说明
    KafkaAPI微信公众号:阿俊的学习记录空间小红书:ArnoZhangwordpress:arnozhang1994博客园:arnozhangCSDN:ArnoZhang1994Kafka包含五个核心API:ProducerAPI允许应用程序将数据流发送到Kafka集群中的topic。ConsumerAPI允许应用程序从Kafka集群中的topic读取数据流......
  • 微服务02 Kafka消息队列, Dubbo, Springcloud微服务框架, Nacos
    3.6Kafka部署kafka下载链接http://kafka.apache.org/downloads#清华源https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/kafka版本格式kafka_<scala版本>_<kafka版本>#示例:kafka_2.13-2.7.0.tgz官方文档:http://kafka.apache.org/quickstart#二进制安装......
  • 微服务01 ZooKeeper, Kafka
    1.4微服务1.4.6SpringCloudJAVA微服务技术Dubbo是2014年之前阿里退出的分布式系统的技术(不属于微服务)。现在主流是SpringCloudSpringCloud 官网地址:https://spring.io/projects/spring-cloud官网上实现方法有很多种,目前主流是阿里巴巴实现的方法Sprin......
  • Apache 设置端口重定向
    1.背景今天收到了云服务商的邮件,说是根据历史的备案信息网站无法访问,突然想起在此之前配置apache时,默认的访问路径是不完整的,需要添加后缀才能访问到站点。同时,由于配置SSL证书后没有进行重定向,导致http访问时会被定向到php的测试界面。2.修改2.1更新默认站点的访问......
  • <<迷雾>> 第11章 全自动加法计算机(6)--一只开关取数 示例电路
    用一只开关依次将数取出info::操作说明刚启动时,t0=1,t1=t2=0,此时只有IAR`=1.按下开关K不要松开,地址寄存器AR收到一个上升沿信号,保存住当前地址,并提供给存储器(注:第一个地址为0,所以电路中暂看不出什么变化)松开开关K,循环移位计数器RR得到......
  • 如何在 Ubuntu 16.04 上将 Apache Web 根目录移动到新位置
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介在Ubuntu上,默认情况下,Apache2Web服务器将其文档存储在/var/www/html目录中,通常位于与操作系统其余部分相同的根文件系统上。然而,有时将文档根目录移动到另一个位......
  • 【vue文件上传+示例代码】【for循环展示el-teble表格】
    <template><el-rowjustify="space-between"><inputtype="file"id="fileInput"/><el-buttontype="success"@click="doSumbitFile">上传</el-button></el-row>&......
  • ab压测的选项、示例和主要关注的指标意义以及ab压测问题Connection reset by peer (10
    一、ab压测的选项、示例和主要关注的指标意义1.ab压测的一些选项-nrequests    全部请求数-cconcurrency 并发数-ttimelimit   最传等待回应时间-ppostfile    POST数据文件-Tcontent-typePOSTContent-type-vverbosity   Howmuchtroubl......
  • 生产者消费者c++ 讲解和代码示例
    生产者-消费者问题的C++讲解和代码示例一、问题描述生产者-消费者问题是经典的多线程同步问题,涉及两个类型的线程:生产者线程:负责生成数据并放入共享缓冲区。消费者线程:负责从共享缓冲区取出数据进行处理。关键挑战在于:同步:确保生产者和消费者在访问共享缓冲区时不发生......