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
使用正则表达式指定感兴趣的主题集合。