春云流卡夫卡

Posted

技术标签:

【中文标题】春云流卡夫卡【英文标题】:spring cloud stream kafka 【发布时间】:2017-02-08 02:08:38 【问题描述】:

我已经构建了一个生产者 spring 云流应用程序和 kafka 作为 binder。这是application.yml:

spring:
cloud:
  stream:
    instanceCount : 1
    bindings:
      output:
        destination: topic-sink
        producer:
           partitionSelectorClass: com.partition.CustomPartition
           partitionCount: 1        
...

我有两个实例(同一个应用程序在单个 jvm 上运行)作为消费者。这是application.yml:

spring:  
cloud:
  stream:
    bindings:
      input:
        destination: topic-sink
        group: hdfs-sink
        consumer:
          partitioned: true
...

我对 kafka 组的理解是,对于同一组中的消费者,消息只会被消费一次。假设,如果生产者应用程序产生消息 A,B 并且同一组中有两个消费者应用程序,消息 A 将由消费者 1 读取,消息 B、C 将由消费者 2 读取。但是,我的消费者正在消费相同消息。我的假设错了吗?

【问题讨论】:

消费者组的想法是该组内的所有消费者将消费来自给定主题的所有事件。但是,如果该主题的消费者多于分区,则 N 个消费者(其中 N 是 #consumers - #partitions)将什么都不做。 【参考方案1】:

我得到了解决方案,谢谢 Arek。对于 1 个分区和 1 个消费者。 我在 Spring Cloud Stream 应用程序中分享生产者\消费者的解决方案。 制作人:

spring: cloud: stream: instanceCount : 1 bindings: output: destination: topic-sink producer: partitionSelectorClass: com.partition.CustomPartition partitionCount: 1 消费者:

spring: cloud: stream: instanceIndex: 0 #between 0 and instanceCount - 1 instanceCount: 1 bindings: input: destination: topic-sink group: hdfs-sink consumer: partitioned: true kafka: binder: autoAddPartitions: true

【讨论】:

以上是关于春云流卡夫卡的主要内容,如果未能解决你的问题,请参考以下文章

卡夫卡流加入

卡夫卡火花流工作有许多活跃的工作

卡夫卡结构化流 java.lang.NoClassDefFoundError

卡夫卡火花流动态模式

每小时或每天都有一个卡夫卡主题是典型的吗?

kafka 分区和副本以及kafaka 执行流程,以及消息的高可用