什么是 Kafka ConsumerConnector 的主题计数参数

what is topic count parameter for Kafka ConsumerConnector

我是 apache kafka 的新手,尝试使用给出的示例。

下面的代码片段用于初始化一个ConsumerConnector,我被主题计数参数搞糊涂了;它似乎会导致 kafka 为该主题分发相应数量的流。但是,我尝试了几次,只有第一个流产生消息。那么,两个问题: 1. 如何确定主题的计数? 2.消息拆分如何跨越流?

提前致谢。

    Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
    **topicCountMap.put(topic, new Integer(a_numThreads));**
    Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = consumer
            .createMessageStreams(topicCountMap);
    List<KafkaStream<byte[], byte[]>> streams = consumerMap.get(topic);

如果我稍有不正确,其他用户可能会随时纠正我,但是:

我之前看过这个例子,代码通常初始化为

topicCountMap.put(topic, new Integer(1));

1 是整数,因为对于给定的示例,示例主题通常仅使用一个分区创建。当您的主题只有一个分区时,没有并行能力(就像您在同一组中有多个消费者一样,会有一些消费者实例不获取任何数据),因此没有理由创建多个流。因此,对于这个单个分区,只创建一个流,这就是为什么您只有第一个(也是唯一一个)流生成消息的原因。