在windows系统中安装kafka配置全步骤记录

ops/2025/3/5 10:13:06/

windowskafka_0">在windows系统中安装kafka配置全步骤记录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • windows系统中安装kafka配置全步骤记录
  • 前言
  • 一、Java JDK安装
    • 1.1 官网下载地址 [JDK下载](https://www.oracle.com/java/technologies/)
    • 1.2 配置环境变量(网上一大堆,随便搜)。
  • 二、Zookeeper安装
    • 2.1 官网下载地址 [Zookeeper官网](https://zookeeper.apache.org/releases.html)
    • 2.2 本地安装
    • 2.3 启动测试
  • 三、Kafka安装
    • 1.官网下载 [kafka官网](https://kafka.apache.org/downloads.html)
    • 2.修改文件夹名字(名字不宜过长)
    • 3.修改配置文件中
    • 4.启动kafka,cmd到kafka解压文件的 .\bin\windows\文件夹下,执行
  • 四、offset安装
  • 五、生产者代码
  • 六、消费者代码


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Java JDK安装

1.1 官网下载地址 JDK下载

1.2 配置环境变量(网上一大堆,随便搜)。

二、Zookeeper安装

Kafka是因为kafka是基于Zookeeper的,而Zookeeper一般都是一个分布式的集群,尽管kafka有自带Zookeeper,但是一般不使用自带的,都是使用外部安装的,所以首先我们需要安装Zookeeper。

2.1 官网下载地址 Zookeeper官网

2.2 本地安装

	1.把下载好的压缩包解压,放到自己指定想要安装的目录下;2.在bin文件夹同级下,创建data文件夹、log文件夹;3.找到config文件夹,将目录中zoo_sample.cfg文件复制一份,重命名为zoo.cfg;4.修改zoo.cfg配置文件,将默认的 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的data 文件夹,再增加数据日志的配置;

在这里插入图片描述

2.3 启动测试

	完成上面所有配置后,进入到zookeeper安装目录下的bin文件下,双击运行 zkServer.cmd 启动;保持cmd窗口不要关掉!!!

三、Kafka安装

1.官网下载 kafka.apache.org/downloads.html" rel="nofollow">kafka官网

2.修改文件夹名字(名字不宜过长)

3.修改配置文件中

	解压到相应文件夹,进入config目录下,找到server.properties文件

在这里插入图片描述在这里插入图片描述

kafkacmdkafka_binwindows_46">4.启动kafka,cmd到kafka解压文件的 .\bin\windows\文件夹下,执行

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

在这里插入图片描述在这里插入图片描述

四、offset安装

offset是kafka的可视化工具,方便查看,下载地址 [offset下载地址](https://www.kafkatool.com/download2/offsetexplorer_64bit.exe)

在这里插入图片描述

五、生产者代码

首先要保证安装 Confluent.Kafka

using Confluent.Kafka;
using System;
using System.Threading.Tasks;namespace KafkaProducer
{class Program{ static void Main(string[] args){Console.WriteLine("请输入消息内容");using (var producer = new KafkaProducer()){while (true){string message = Console.ReadLine();try{//topic名称是testvar result = producer.ProduceAsync("topic01",new Confluent.Kafka.Message<string, string>() { Key = Guid.NewGuid().ToString(), Value = message }).GetAwaiter().GetResult();Console.WriteLine($"offset:{result.Offset.Value},partition:{result.Partition.Value}");}catch (ProduceException<string, string> e){Console.WriteLine($"失败的消息: {e.Message} [{e.Error.Code}]");continue;}}}}class KafkaProducer : IDisposable{private ProducerConfig _config = new ProducerConfig();private IProducer<string, string> _producer;public KafkaProducer(string server = null){if (string.IsNullOrEmpty(server)){//这里可以添加更多的Kafka集群,比如//server=" server ="192.168.1.129:9092,192.168.1.133:9092,192.168.1.134:9092";";                   server = "192.168.250.11:9092";}_config.BootstrapServers = server;_producer = new ProducerBuilder<string, string>(_config).Build();}public async Task<DeliveryResult<string, string>> ProduceAsync(string topic, Message<string, string> message){return await _producer.ProduceAsync(topic, message);}public void Dispose(){_producer?.Dispose();}}}
}

六、消费者代码

using Confluent.Kafka;
using System;namespace KafkaConsumer
{class Program{static void Main(string[] args){Console.WriteLine("默认只关注test主题的消息)");using (var consumer = new KafkaConsumer()){while (true){consumer.Consume(a =>{if (a == null){Console.WriteLine("暂无消息");}else{Console.WriteLine($"Key:{a.Message.Key},Value:{a.Message.Value}");}});}}}class KafkaConsumer : IDisposable{private IConsumer<string, string> _consumer;public KafkaConsumer(string server = null){if (string.IsNullOrEmpty(server)){server = "192.168.250.11:9092";}var config = new ConsumerConfig{GroupId = "group.1",BootstrapServers = server,AutoOffsetReset = AutoOffsetReset.Earliest};_consumer = new ConsumerBuilder<string, string>(config).Build();//topic名称默认是test_consumer.Subscribe("topic01");}public void Consume(Action<ConsumeResult<string, string>> action = null){var consumerResult = _consumer.Consume(TimeSpan.FromSeconds(1));action?.Invoke(consumerResult);}public void Dispose(){_consumer?.Dispose();}}}
}}}}
}

http://www.ppmy.cn/ops/15624.html

相关文章

ETLCloud中多并行分支运行的设计技巧

在大数据处理领域&#xff0c;ETL&#xff08;Extract, Transform, Load&#xff09;流程是至关重要的一环&#xff0c;它涉及数据的提取、转换和加载&#xff0c;以确保数据的质量和可用性。而在ETL流程中&#xff0c;多并行分支的运行设计是一项关键技巧&#xff0c;可以有效…

碎碎笔记01

1. 多元线性回归 通过现有数据&#xff0c;总结出数据所对应的线性方程的斜率与截距 f ( x 1 , x 2 , . . . , x n ) w 1 x 1 w 2 x 2 . . . w n x n b f(x_1, x_2, ..., x_n) w_1x_1 w_2x_2 ... w_nx_n b f(x1​,x2​,...,xn​)w1​x1​w2​x2​...wn​xn​b w&a…

websocket 连接,http 协议下用 ws, https 协议下必须要使用 wss

解决方案&#xff1a; https 相当于使用 httpssl 认证&#xff0c;使用 https 时 websocket 访问&#xff08;比如建立链接时&#xff09;必须要使用 wss。 详细解释&#xff1a; WebSocket 协议有两个主要版本&#xff1a;“ws”和“wss”。"ws"表示非加密的 Web…

数据库开发工具dbForge Studio for Oracle v4.6全新发布 - 新支持一些语句

dbForge Studio for Oracle是一个功能强大的集成开发环境(IDE)&#xff0c;它提供了通用的数据编辑工具来管理数据库内和外部数据&#xff0c;能够帮助Oracle开发者提高PL/SQL的编码速度。这个工具可以同步不同Oracle服务器的数据并能够在开发过程中对管理程序进行自动化调整。…

Leetcode 25. K 个一组翻转链表

题目链接&#xff1a; 25. K 个一组翻转链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/reverse-nodes-in-k-group/description/ 题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。…

NIKKE胜利女神妮姬1.5周年(PC)怎么注册?账号注册教程一看就懂

游戏的世界观了一些轻科幻、末世和废土背景&#xff0c;剧情中也探讨了一些深刻的主题&#xff0c;比如NIKKE的人权问题。虽然整体剧情表现得连贯&#xff0c;但本质上有一些俗套情节&#xff0c;特别是在序章的玛丽安之死后&#xff0c;剧情逐渐失去了原有的紧张感&#xff0c…

C#创建netcore配置program文件

记录一下 .Net Core 6 WebApi 项目搭建_.net core webapi-CSDN博客 .NET6 JWT(生成Token令牌) 且在swagger添加JWT - 陌麟 - 博客园 (cnblogs.com) 如何在 Net6.0 中对 WebAPI 进行 JWT 认证和授权 - 可均可可 - 博客园 (cnblogs.com) ASP.NET Core 6.0 添加 JWT 认证和授…

基于Springboot的新生宿舍管理系统

基于SpringbootVue的新生宿舍管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 公告信息管理 院系管理 班级管理 学生管理 宿舍信息管理 宿舍安排管理…