core net 消费kafka_基于NET Core简单操作Kafka

本文档详述了如何在Windows服务器上安装JDK、Zookeeper和Kafka,并配置环境变量。接着创建并运行Kafka服务,包括创建topic、生产者和消费者。最后,展示了使用.NET Core创建Kafka服务端和客户端的示例代码,实现消息发送和接收功能。
摘要由CSDN通过智能技术生成

安装

windows服务器上安装JDK,kafka以及zookeeper。

安装JDK

JDK下载路径

安装完成后需要添加以下的环境变量(右键点击“我的电脑” -> “高级系统设置” -> “环境变量” ):

C:\Program Files\Java\jdk-14\bin(你的安装目录)

打开cmd运行 “java -version” 查看当前系统Java的版本,测试是否安装完成。

安装zookeeper

Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper

下载zookeeper

主要是下载Bin文件的版本,apache-zookeeper-3.6.0-bin.tar.gz

下载完成解压文件

打开zookeeper-3.4.13\conf,把zoo_sample.cfg重命名成zoo.cfg

从文本编辑器里打开zoo.cfg

把dataDir的值改成“./zookeeper-3.4.13/data”

添加环境变量:

C:\Program Files\apache-zookeeper-3.6.0\bin(你的解压到的目录)

进入目录C:\Program Files\apache-zookeeper-3.6.0\bin,文本编辑zkEnv.cmd,添加JAVA_HOME变量后保存退出。

set JAVA_HOME=C:\Program Files\Java\jdk-14(前面安装JDK的目录)

打开cmd然后执行 zkserver,挂着不要关闭。

安装kafka

下载kafka

解压文件,注意解压的目录不能含有中文和空格

进入kafka的目录config

从文本编辑器里打开 server.properties

把 log.dirs的值改成 “./logs”

打开cmd进入kafka文件目录: cd C:\kafka_2.11-2.4.1(kafka目录)

输入并执行: .\bin\windows\kafka-server-start.bat .\config\server.properties

挂着不要关闭。

运行kafka

创建topic

cmd进入kafka目录,执行以下代码创建一个topic:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

创建生产者

cmd进入kafka目录,执行以下代码创建一个producer

kafka-console-producer.bat --broker-list localhost:9092 --topic test

创建消费者

cmd进入kafka目录,执行以下代码创建一个consumer

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

最后测试如图所示

NET简单操作kafka

新建两个项目,一个kafka服务端用于发送消息,一个kafka客户端用于订阅消息

打开NuGet,搜索安装kafka-net-core

服务端

using KafkaNet;

using KafkaNet.Model;

using KafkaNet.Protocol;

using System;

namespace KafkaServer

{

class Program

{

static void Main(string[] args)

{

const string topicName = "test";

var options = new KafkaOptions(new Uri("http://localhost:9092"));

//创建一个生产者发消息

using (var producer = new Producer(new BrokerRouter(options)){ BatchSize = 100, BatchDelayTime = TimeSpan.FromMilliseconds(2000) })

{

while (true)

{

var message = Console.ReadLine();

if (message == "quit") break;

if (!string.IsNullOrEmpty(message))

{

producer.SendMessageAsync(topicName, new[] { new Message(message) });

}

}

}

}

}

}

客户端

using KafkaNet;

using KafkaNet.Common;

using KafkaNet.Model;

using System;

using System.Threading.Tasks;

namespace KafkaClient

{

class Program

{

static void Main(string[] args)

{

const string topicName = "test";

var options = new KafkaOptions(new Uri("http://localhost:9092"));

Task.Run(() =>

{

//创建一个消费者

var consumer = new Consumer(new ConsumerOptions(topicName, new BrokerRouter(options)));

foreach (var data in consumer.Consume())

{

Console.WriteLine("Response: PartitionId={0},Offset={1} :Value={2}", data.Meta.PartitionId, data.Meta.Offset, data.Value.ToUtf8String());

}

});

Console.ReadLine();

}

}

}

运行测试结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值