关于分布式计算框架连接kafka不满足同一消费者组不满足只有一个消费者的情况

背景:
之前在做spark实时计算的时候,无意间启动了两个spark Application,导致了最终的结果成倍的增加,经过排查之后,确实是因为启动了两个相同的 spark application,当时感觉特别疑惑,也无从下手来解决这个问题。后来再做Flink实时计算的时候,也同样遇到了这样的问题,Flink官网中的一句话猛然点醒了我:

If you have a problem with Kafka when using Flink, 
keep in mind that Flink only wraps KafkaConsumer or KafkaProducer 
and your problem might be independent of Flink and sometimes can 
be solved by upgrading Kafka brokers, reconfiguring Kafka brokers 
or reconfiguring KafkaConsumer or KafkaProducer in Flink. Some 
examples of common problems are listed below.

是的,Flink 仅仅是封装了KafkaConsumer or KafkaProducer,底层仍然是使用了KafkaConsumer or KafkaProducer,所有当同一个消费者组不满足只有y一个消费者的情况,我应该考虑的是kafka是不是有什么地方理解错了。对,肯定是什么地方理解错了

我们都应该知道的是,同一个消费者组下只有一个消费者的情况,仅仅适应与subscribe(topic)(订阅模式),这应该是一个送分的题,竟然被忽略掉了,罪过罪过。我们一起来看一下kafka的源码对group.id的描述,就更豁然开朗了

 public static final String GROUP_ID_CONFIG = "group.id";
 private static final String GROUP_ID_DOC = "A unique string tha
 t identifies the consumer group this consumer belongs to. This 
 property is required if the consumer uses either the group 
 management functionality by using <code>subscribe(topic)</code> 
 or the Kafka-based offset management strategy.";

发布了94 篇原创文章 · 获赞 47 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/jsjsjs1789/article/details/88925425