confluent-kafka-dotnet, 融合 Kafka. NET 客户端的Apache

分享于 

8分钟阅读

GitHub

  繁體 雙語
.NET/C# Kafka Client
  • 源代码名称:confluent-kafka-dotnet
  • 源代码网址:http://www.github.com/confluentinc/confluent-kafka-dotnet
  • confluent-kafka-dotnet源代码文档
  • confluent-kafka-dotnet源代码下载
  • Git URL:
    git://www.github.com/confluentinc/confluent-kafka-dotnet.git
    Git Clone代码到本地:
    git clone http://www.github.com/confluentinc/confluent-kafka-dotnet
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/confluentinc/confluent-kafka-dotnet
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Apache KafkaTM融合客户端的. NET

    Travis Build StatusBuild statusChat on Slack

    confluent-kafka-dotnetApache Kafka的汇合客户机的.NET,以及汇合平台。

    功能:

    confluent-kafka-dotnet是由 heider rdkafka dotnet的Andreas 的。 我们是他的作品的粉丝,很高兴能够利用 rdkafka of作为这个客户机的基础。 感谢 Andreas !

    引用

    confluent-kafka-dotnet是通过NuGet分发的。 我们提供三个软件包:

    • Confluent.Kafka [net45, netstandard1.3] - 核心客户端库。
    • 提供序列化器和反序列化程序- 为使用汇合模式注册表集成的Avro序列化数据提供序列化器和序列化器。
    • Confluent.SchemaRegistry [net452, netstandard1.4] - 汇合模式注册表客户端(。Confluent.Kafka. Avro的依赖关系)。

    在 Visual Studio 安装 Confluent.Kafka,在NuGet软件包管理器用户界面中搜索 Confluent.Kafka,或者在软件包管理器控制台中运行以下命令:

    
    Install-Package Confluent.Kafka -Version 0.11.4
    
    
    
    

    要添加对dotnet核心项目的引用,请在 命令行 中执行以下命令:

    
    dotnet add package -v 0.11.4 Confluent.Kafka
    
    
    
    

    插件开发分支

    我们已经开始开发一个 1.0版本的库,它将在增加幂幂和事务特性之后发生。 为了最好地容纳这些和它的他更改,我们将在该发行版中对API进行更改。 你可以在 1.0-experimental 分支( 以及 nuget.org 上的相应软件包。) 上跟踪我们的进度。 我们已经在其他方面增加了对消息头和定制时间戳的支持。 注意,这里分支上的所有工作都可能发生更改,不应视为生产就绪。 所有反馈都非常欢迎 !

    同样,对应于所有发布分支分支的nuget软件包也可以从以下nuget软件包源获得( 请注意: 这不是一个网址- 你应该在nuget软件包管理器中指定它: https://ci.appveyor.com/nuget/confluent-kafka-dotnet 这些nuget软件包的版本后缀与appveyor内部版本号匹配。 你可以看到,通过查看 AppVeyor构建历史文件,特定的内部版本号对应于哪一个。

    用法

    示例目录中查看示例。 集成测试也可以作为很好的例子。

    有关配置属性的概述,请参阅 librdkafka文档管理单元。

    API文档可以在网站上使用。 注意,目前构建过程有一个问题,它阻止了某些文档的生成。 对于缺少的信息,请参考源代码中的XML文档注释。

    基本生产者示例

    usingSystem;usingSystem.Text;usingSystem.Collections.Generic;usingConfluent.Kafka;usingConfluent.Kafka.Serialization;publicclassProgram{
     publicstaticvoidMain()
     {
     varconfig=newDictionary<string, object> 
     { 
     { "bootstrap.servers", "localhost:9092" } 
     };
     using (varproducer=newProducer<Null, string>(config, null, newStringSerializer(Encoding.UTF8)))
     {
     vardr=producer.ProduceAsync("my-topic", null, "test message text").Result;
     Console.WriteLine($"Delivered '{dr.Value}' to: {dr.TopicPartitionOffset}");
     }
     }
    }

    基本使用者示例

    usingSystem;usingSystem.Text;usingSystem.Collections.Generic;usingConfluent.Kafka;usingConfluent.Kafka.Serialization;publicclassProgram{
     publicstaticvoidMain()
     {
     varconf=newDictionary<string, object> 
     { 
     { "group.id", "test-consumer-group" },
     { "bootstrap.servers", "localhost:9092" },
     { "auto.commit.interval.ms", 5000 },
     { "auto.offset.reset", "earliest" }
     };
     using (varconsumer=newConsumer<Null, string>(conf, null, newStringDeserializer(Encoding.UTF8)))
     {
     consumer.OnMessage+= (_, msg)
     =>Console.WriteLine($"Read '{msg.Value}' from: {msg.TopicPartitionOffset}");
     consumer.OnError+= (_, error)
     =>Console.WriteLine($"Error: {error}");
     consumer.OnConsumeError+= (_, msg)
     =>Console.WriteLine($"Consume error ({msg.TopicPartitionOffset}): {msg.Error}");
     consumer.Subscribe("my-topic");
     while (true)
     {
     consumer.Poll(TimeSpan.FromMilliseconds(100));
     }
     }
     }
    }

    AvroGen工具

    通过 Confluent.Kafka.Avro 提供的Avro序列化程序和反序列化程序可以与 GenericRecord 类一起使用,也可以使用使用 avrogen 工具( 可以利用的在这里) 生成的特定类。 使用方法:

    
    dotnet/path/to/avrogen.dll -s your_schema.asvc. 
    
    
    
    

    汇合云

    示例演示了如何配置. NET 客户机以使用云服务。

    插件生成

    要生成库或者任何测试或者示例项目,请在相关项目目录中运行以下命令:

    
    dotnet restore
    
    
    dotnet build
    
    
    
    

    运行示例项目,在示例目录的项目中运行以下命令:

    
    dotnet run <args>
    
    
    
    

    测试

    数据驱动的单元测试

    从测试/合并。kafka目录中运行:

     
    dotnet test
    
    
    
     

    集成测试

    汇合平台 ( 或者 Apache Kafka ) 分发目录,运行以下两个命令( 在单独的终端 Windows 中),以设置单个代理测试 Kafka 集群:

    
    ./bin/zookeeper-server-start./etc/kafka/zookeeper.properties
    
    
    
    ./bin/kafka-server-start./etc/kafka/server.properties
    
    
    
    

    现在在测试/confleunt。kafka。IntegrationTests目录中使用 bootstrap-topics.sh 脚本来设置先决条件主题:

    
    ./bootstrap-topics.sh <confluent platform path> <zookeeper>
    
    
    
    

    然后:

     
    dotnet test
    
    
    
     

    版权所有( c ) 2016 -2017 合并公司。 ,2015 -2016, Heider