Win10安装kafka并用C#调用

kafka安装

jdk、kafka版本如下,zookeeper使用kafka自带版本

安装包下载位置:https://download.csdn.net/download/henreash/90087368 (赚点csdn下载资源分)

安装jdk后,解压kafka压缩包,修改配置文件:

kafka_2.13-3.9.0\config\zookeeper.properties内修改:dataDir=D:/Kafka/zookeeper/data

kafka_2.13-3.9.0\config\server.properties内修改:log.dirs=D:/Kafka/kafka-logs

在目录内创建批处理文件,启动zookeeper和kafka:

kfk.cmd内容:call bin/windows/kafka-server-start.bat config/server.properties

zk.bat内容:call bin/windows/zookeeper-server-start.bat config/zookeeper.properties

双击zk.bat、kfk.cmd启动zookeeper和kafka

kafka-manager安装

将kafka-manager2解压到d盘,注意目录结构不能太深,否则启动报错。

修改config\application.conf,修改节点kafka-manager.zkhosts指向zookeeper

kafka-manager.zkhosts="192.168.0.109:2181"

创建start.bat批处理文件,内容:.\bin\kafka-manager.bat

双击启动kafka-manager。

打开浏览器,输入地址:http://localhost:9000/

点击Cluster菜单,创建一个默认Cluster Test001;

kafka环境配置完毕。

C#调用

创建C#8项目,在nuget中下载Confluent.Kafka(2.6.1),如下代码进行消息发布和订阅。

cs 复制代码
       private async void simpleButton2_Click(object sender, EventArgs e)
       {
           var config = new ProducerConfig 
           { 
               BootstrapServers = "localhost:9092"
           };
           using (var producer = new ProducerBuilder<Null, string>(config).Build())
           {
               var dr = await producer.ProduceAsync("test-topic", new Message<Null, string> { Value = "hello,world" });
               Debug.WriteLine($"Delivered '{dr.Value}' to '{dr.TopicPartitionOffset}'");
           }

       }

       private void simpleButton3_Click(object sender, EventArgs e)
       {
           Task.Factory.StartNew(() => {
               var config = new ConsumerConfig
               {
                   GroupId = "test-consumer-group",
                   BootstrapServers = "localhost:9092",
                   AutoOffsetReset = AutoOffsetReset.Earliest
               };
               var cts = new CancellationTokenSource();
               using (var consumer = new ConsumerBuilder<Ignore, string>(config).Build())
               {
                   consumer.Subscribe("test-topic");
                   
                   try
                   {
                       while (true)
                       {
                           try
                           {
                               var cr = consumer.Consume(cts.Token);
                               Debug.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
                           }
                           catch (Exception ex)
                           {
                               Console.WriteLine(ex);
                           }
                       }
                   }
                   catch (Exception ex2)
                   {
                       Console.WriteLine(ex2);
                   }
               }
           });

       }

执行后kafka-manager界面如下图:

相关推荐
Francek Chen1 小时前
【大数据存储与管理】分布式数据库HBase:03 HBase数据模型
大数据·数据库·hadoop·分布式·hdfs·hbase
伟大的大威8 小时前
NVIDIA DGX Spark (Blackwell GB10) 双机 196B Step 3.5 Flash 大模型部署完整实录
分布式·spark·nvidia
江不清丶12 小时前
Kafka消息积压排查与治理:从应急处理到长期优化
数据库·kafka·linq
回家路上绕了弯14 小时前
Claude Code Agent Team 全解析:AI 集群协作,重构代码开发新范式
人工智能·分布式·后端
初次攀爬者15 小时前
Redis与数据库的数据一致性方案解析
数据库·redis·分布式
切糕师学AI16 小时前
Kubernetes Operator 详解
运维·分布式·云原生·容器·kubernetes·自动化·运维自动化
梵得儿SHI16 小时前
Spring Cloud 高并发订单服务实战:从创建流程优化到 Seata 分布式事务落地(附代码 + 架构图)
分布式·spring·spring cloud·高并发·异步削峰·完整解决方案·限流降级
阿坤带你走近大数据19 小时前
大数据处理与分布式存储的各自介绍
分布式·云原生·实时数仓·存储·数据处理·数据湖仓
yatum_201420 小时前
集群节点时钟同步(NTP)配置手册
linux·分布式·hbase
筱顾大牛20 小时前
点评项目---分布式锁
java·redis·分布式·缓存·idea