首页 > 解决方案 > Kafka c#:自定义分区器和分配器实现

问题描述

我需要使用 c# Confluent 客户端库实现自定义 Partitioner 和 Assigner。使用 apache java 客户端 API 在 java 应用程序中实现了相同的功能:

  1. 隔板:

    • 生产者配置:

      props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, MyCustomerPartitioner.class.getName());

    • MyCustomerPartitioner 通过重写 configure、partition、onNewBatch 和 close 方法来实现 Partitioner。

  2. 分配者:

    • 消费者配置:

      props.put(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, MyCustomAssignor.class.getName());

    • MyCustomAssignor 通过覆盖 name、configure、subscriptionUserData 和 assign 方法扩展 AbstractPartitionAssignor 实现 Configurable。

上述java实现使用spring-kafka 2.6.7。

我无法在 c# Confluent kafka 版本中找到 API:1.4.0。用于 Partitioner 和 Assigner 的自定义实现。

观察:

  1. 作为 ProducerConfig 一部分的 Partitioner 是枚举类型,具有 Random、Consistent、ConsistentRandom、Murmur2 和 Murmur2Random 值

  2. 分配器:ConsumerConfig 中使用的 PartitionAssignmentStrategy 是枚举值:Range 和 RoundRobin。

请求您让我知道我可以使用 c# Confluent kafka 库来实现自定义分区器和分配器的 API。

标签: c#apache-kafkaconfluent-kafka-dotnet

解决方案


推荐阅读