小编San*_*sle的帖子

领导者选举:Consul vs ZooKeeper

我们正在选择实施领导者选举的最佳选项,以实现高可用性。我们的目标是在任何给定时间只有一个实例处于活动状态。我们使用 Spring Boot 开发默认部署在 Tomcat 上的应用程序。很高兴听到您对以下选项的意见:

Zookeeper 是否提供比 Consul 更好的 CP?

对维护/复杂性的看法?

consul apache-zookeeper

5
推荐指数
1
解决办法
2030
查看次数

Kafka 消费者正在重新启动时读取最后提交的偏移量(Java)

我有一个 kakfa 使用者,其enable.auto.commit设置为false。每当我重新启动我的消费者应用程序时,它总是再次读取最后提交的偏移量,然后是下一个偏移量。

例如。最后提交的偏移量是 50。当我重新启动消费者时,它再次首先读取偏移量 50,然后读取下一个偏移量。

我正在执行 commitsync,如下所示。

Map<TopicPartition, OffsetAndMetadata> offsets = new HashMap<>();
offsets.put(new TopicPartition("sometopic", partition), new OffsetAndMetadata(offset));
kafkaconsumer.commitSync(offsets);
Run Code Online (Sandbox Code Playgroud)

我尝试将auto.offset.reset设置为最早最晚,但它并没有改变行为。

我在消费者配置中遗漏了什么吗?

config.put(ConsumerConfig.CLIENT_ID_CONFIG, "CLIENT_ID");
config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
config.put(ConsumerConfig.GROUP_ID_CONFIG, "GROUP_ID");
config.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");
config.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class.getName());
config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,CustomDeserializer.class.getName());
config.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
Run Code Online (Sandbox Code Playgroud)

apache-kafka kafka-consumer-api

2
推荐指数
1
解决办法
2051
查看次数