首先说明一点,像Confluent.Kafka这种开源的组件,三天两头的更新。在搜索引擎搜索到的结果往往用不了,浪费时间。建议以后遇到类似的情况直接看官网给的Demo。

因为搜索引擎搜到的文章,作者基本上都没有说明用的是哪个版本的dll。所以你nuget安装了后,不一定能使用。

截止目前,我用的Confluent.Kafka是最新版本:1.2.1。

GitHub上源码地址:https://github.com/confluentinc/confluent-kafka-dotnet,上面附有生产和消费的示例。直接去看吧。往下就不要看了,是我自己用到的,只是方便我自己查看。

生产:

        static async void Produce()
{
var config = new ProducerConfig { BootstrapServers = "192.168.3.250:9092" }; using (var p = new ProducerBuilder<Null, string>(config).Build())
{
try
{
var dr = await p.ProduceAsync("mytopic", new Message<Null, string> { Value = "test" });
Console.WriteLine($"Delivered '{dr.Value}' to '{dr.TopicPartitionOffset}'");
}
catch (ProduceException<Null, string> e)
{
Console.WriteLine($"Delivery failed: {e.Error.Reason}");
}
}
}

消费:

       static async void Consume()
{
var conf = new ConsumerConfig
{
GroupId = "test-consumer-group",
BootstrapServers = "192.168.3.250:9092",
AutoOffsetReset = AutoOffsetReset.Earliest
}; using (var c = new ConsumerBuilder<Ignore, string>(conf).Build())
{
c.Subscribe("mytopic"); CancellationTokenSource cts = new CancellationTokenSource();
Console.CancelKeyPress += (_, e) => {
e.Cancel = true; // prevent the process from terminating.
cts.Cancel();
}; try
{
while (true)
{
try
{
var cr = c.Consume(cts.Token);
Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
}
catch (ConsumeException e)
{
Console.WriteLine($"Error occured: {e.Error.Reason}");
}
}
}
catch (OperationCanceledException)
{
c.Close();
}
}
}

c# .net 使用Confluent.Kafka针对kafka进行生产和消费的更多相关文章

  1. 【sparkStreaming】kafka作为数据源的生产和消费

    1.建立生产者发送数据 (1)配置zookeeper属性信息props (2)通过 new KafkaProducer[KeyType,ValueType](props) 建立producer (3) ...

  2. kafka创建topic,生产和消费指定topic消息

    启动zookeeper和Kafka之后,进入kafka目录(安装/启动kafka参考前面一章:https://www.cnblogs.com/cici20166/p/9425613.html) 1.创 ...

  3. c语言使用librdkafka库实现kafka的生产和消费实例(转)

    关于librdkafka库的介绍,可以参考kafka的c/c++高性能客户端librdkafka简介,本文使用librdkafka库来进行kafka的简单的生产.消费 一.producer librd ...

  4. Apache Kafka安全| Kafka的需求和组成部分

    1.目标 - 卡夫卡安全 今天,在这个Kafka教程中,我们将看到Apache Kafka Security 的概念  .Kafka Security教程包括我们需要安全性的原因,详细介绍加密.有了这 ...

  5. Kafka(3)--kafka消息的存储及Partition副本原理

    消息的存储原理: 消息的文件存储机制: 前面我们知道了一个 topic 的多个 partition 在物理磁盘上的保存路径,那么我们再来分析日志的存储方式.通过 [root@localhost ~]# ...

  6. kafka实战教程(python操作kafka),kafka配置文件详解

    kafka实战教程(python操作kafka),kafka配置文件详解 应用往Kafka写数据的原因有很多:用户行为分析.日志存储.异步通信等.多样化的使用场景带来了多样化的需求:消息是否能丢失?是 ...

  7. CentOS 7部署Kafka和Kafka集群

    CentOS 7部署Kafka和Kafka集群 注意事项 需要启动多个shell脚本交互客户端进行验证,运行中的客户端不要停止. 准备工作: 安装java并设置java环境变量,在`/etc/prof ...

  8. Kafka 使用Java实现数据的生产和消费demo

    前言 在上一篇中讲述如何搭建kafka集群,本篇则讲述如何简单的使用 kafka .不过在使用kafka的时候,还是应该简单的了解下kafka. Kafka的介绍 Kafka是一种高吞吐量的分布式发布 ...

  9. Spark Streaming + Kafka整合(Kafka broker版本0.8.2.1+)

    这篇博客是基于Spark Streaming整合Kafka-0.8.2.1官方文档. 本文主要讲解了Spark Streaming如何从Kafka接收数据.Spark Streaming从Kafka接 ...

随机推荐

  1. IEEE浮点表示 (原发布 csdn 2018-10-14 10:29:33)

    目录 观察IEEE浮点表示 工作中遇到过整型转浮点型(union那种转换),碰到就看下书,过后就遗忘了.等过段时间又出现此现象,又重新拿起书本,这次记录了过程.然而一直等到今天才写出来,以防以后还用到 ...

  2. 英语chrysopal金绿宝石chrysopal单词

    chrysopal金绿宝石,也称金绿玉.化学成分为BeAl2O4.晶体属正交(斜方)晶系的氧化物矿物.它位列名贵宝石,具有四个变种:猫眼,变石,变石猫眼和金绿宝石晶体. 金绿宝石本身就是较稀少的矿物, ...

  3. 关于 Java 关键字 volatile 的总结

    1 什么是 volatile volatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制.相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下 ...

  4. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  5. 利用DNS日志进行MySQL盲注

    0x01 技术原理 这里是利用load_file这个函数利用smb请求方式请求域名机器下的一个文件,由于计算机对该域名不熟悉所以需要优先请求DNS,所以我们通过DNS日志记录中的内容来获取回显.解决了 ...

  6. Asp.Net构架(Http请求处理流程)

    一:引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何一步步拖放控件.设置控件属性.编写CodeBehind代码,以实现某个 ...

  7. Linux shell 函数应用示例02

    nginx服务控制脚本: 安装ngix [root@wei function]# yum install gcc pcre-devel openssl-devel [root@wei function ...

  8. MySQL索引(九)

    一.索引介绍 1.1 什么是索引 索引就好比一本书的目录,它会让你更快的找到内容. 让获取的数据更有目的性,从而提高数据库检索数据的性能. 分为以下四种: BTREE:B+树索引(基本上都是使用此索引 ...

  9. db.sqlite如何导出转储为sql文件

    在使用 django框架写博客时,用的是sqlite数据库,想要将其中的db.sqlite转储为sql文件, 我是在linux下使用的,很多linux系统下都自带sqlite 检查是否安装sqlite ...

  10. django 权限设置-登录配置权限

    1.首先需要一个判断用户是否拥有这个权限的name来区分在主页上是否显示标签 在permission中加入 name=models.CharField(max_length=32, verbose_n ...