天天看点

Spark Streaming对接kafka策略分析

LocationStrategies(位置策略)

控制特定的主体分区在哪个执行器上消费的(也就是分区根据执行器的位置进行设置)

位置的选择是相对的,位置策略有三种方案:

  • LocationStrategies.PreferConsistent()

    首选一致性

    多数时候采用该方式,在所有可用的执行器上均匀分配kafka的主题的所有分区。

    综合利用集群的计算资源。

  • LocationStrategies.PreferBrokers()

    首选kafka服务器

    只有在kafka服务器和executor位于同一主机,可以使用该种策略。

  • LocationStrategies.PreferFixed

    首选固定模式

    如果负载不均衡,可以使用该种策略放置在特定节点使用指定的主题分区,手动控制方案。

    没有显示指定的分区仍然用1方案

ConsumerStrateges(消费策略)

消费者策略,是控制如何创建和配置消费者对象。

或者对kafka上的消息进行如何消费界定,比如t1主题的分区0和1

或者消费特定分区上的特定消息段。

该类可扩展,自行实现。

  • ConsumerStrategies.Assign

    指定固定的分区集合,指定了特别详细的范围。

    def Assign[K, V](

    topicPartitions: Iterable[TopicPartition],

    kafkaParams: collection.Map[String, Object],

    offsets: collection.Map[TopicPartition, Long]

    )

  • ConsumerStrategies.Subscribe

    允许消费订阅固定的主题集合。

  • ConsumerStrategies.SubscribePattern

    使用正则表达式指定感兴趣的主题集合。

继续阅读