Consumer.create(consumerConfig)
val topicMessageStreams = consumerConnector.createMessageStreams(
topics, keyDecoder, valueDecoder)
这里的createMessageStreams调用的是子类ZookeeperConsumerConnector 的实现:
def createMessageStreams[K,V](topicCountMap: Map[String,Int], keyDecoder: Decoder[K], valueDecoder: Decoder[V])
: Map[String, List[KafkaStream[K,V]]] = {
if (messageStreamCreated.getAndSet(true))
throw new MessageStreamsExistException(this.getClass.getSimpleName +
" can create message streams at most once",null)
**consume**(topicCountMap, keyDecoder, valueDecoder)
}
consume方法: