在C#中使用Kafka进行消息的发送和接收,你可以使用Confluent.Kafka
这个库。下面是一个简单的示例,展示了如何使用这个库来发送和接收Kafka消息。
首先,你需要安装Confluent.Kafka
库。你可以通过NuGet包管理器来安装:
Install-Package Confluent.Kafka
然后,你可以使用以下代码来发送和接收消息:
using System;
using System.Threading.Tasks;
using Confluent.Kafka;
namespace KafkaExample
{
class Program
{
static async Task Main(string[] args)
{
// Kafka配置
var config = new ConsumerConfig
{
BootstrapServers = "localhost:9092",
GroupId = "my-group",
AutoOffsetReset = AutoOffsetReset.Earliest
};
// 生产者配置
var producerConfig = new ProducerConfig
{
BootstrapServers = "localhost:9092"
};
// 创建生产者
using (var producer = new ProducerBuilder(producerConfig).Build())
{
// 发送消息
await producer.ProduceAsync(new Message
{
TopicPartition = new TopicPartition("my-topic", 0),
Value = "https://www.yisu.com/ask/Hello, Kafka!",
Key = null
});
Console.WriteLine("Message sent.");
}
// 创建消费者
using (var consumer = new ConsumerBuilder(config).Build())
{
// 订阅主题
consumer.Subscribe(new[] { "my-topic" });
// 处理消息
while (true)
{
var msg = await consumer.ConsumeAsync();
try
{
Console.WriteLine($"Received message: {msg.Value}");
}
finally
{
consumer.Commit(msg);
}
}
}
}
}
}
在这个示例中,我们首先配置了生产者和消费者的设置。然后,我们创建了一个生产者来发送一条消息到名为my-topic
的主题。接下来,我们创建了一个消费者来订阅同一个主题,并处理接收到的消息。
请注意,你需要根据你的Kafka集群的实际情况来修改BootstrapServers
和GroupId
等配置。此外,确保Kafka服务正在运行并且可以从你的应用程序中访问。