2017-02-10 1 views
0

에서 동일한 메시지를 소비하는 방법이 가능 Direct Stream approach?- 여러 소비자

사용하여 여러 소비자의 Kakfa topic messages를 소비? Direct Stream 방식에는 Consumer Group 개념이 없으므로

group.id을 DirectStream 메서드의 kafkaparams로 전달하면 어떻게됩니까? 아래의 코드는 with group.id과 마찬가지로 Kafka Params도 without group.id입니다.

샘플 코드 :

val kafkaParams = Map(
    "group.id" -> "group1", 
    CommonClientConfigs.SECURITY_PROTOCOL_CONFIG -> sasl, 
    ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer", 
    ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer", 
    "metadata.broker.list" -> brokerList, 
    "zookeeper.connect" -> zookeeperURL 
) 

val dStream = 
    KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](
    ssc, kafkaParams, topicSet 
).map(_._2) 

답변

1

것도이 발생하지는 낮은 수준 SimpleConsumer을 사용하기 때문에 직접 스트리밍 방식은 모든 계정에 그룹 ID 매개 변수를 고려하지 않습니다 스파크. 다른 Spark 직접 접근 스트림을 사용하여 동일한 주제를 사용할 수 없습니다. 그룹을 이용하는 이전 수신기 기반 접근 방식을 연기 할 수 있습니다.

관련 문제