我正在使用名称:kafka2.12版本:2.3.0。根据流量/负载,我想更改主题的最大分区数。Kafka一上来,有没有可能做这种改变,用代码能做到吗?
是的,您可以按代码增加分区。使用AdminClient.CreatePartitions方法。
AdminClients.CreatePartitions方法API文档
public abstract CreatePartitionsResult createPartitions(java.util.Map<java.lang.String,NewPartitions> newPartitions,CreatePartitionsOptions options)
根据相应的值增加作为newPartitions的键给定的主题的分区数。如果为具有键的主题增加分区,则会影响分区逻辑或消息的排序。
public static void createPartitions(String topicName, int numPartitions) {
Properties props = new Properties();
props.put("bootstrap.servers","localhost:9092");
AdminClient adminClient = AdminClient.create(props);
Map<String, NewPartitions> newPartitionSet = new HashMap<>();
newPartitionSet.put(topicName, NewPartitions.increaseTo(numPartitions));
adminClient.createPartitions(newPartitionSet);
adminClient.close();
}
我是Apache Kafka的一个新用户,我还在了解它的内部结构。 在我的用例中,我需要从Kafka Producer客户端动态增加一个主题的分区数量。 我发现了关于增加分区大小的其他类似问题,但它们使用了zookeeper配置。但是我的kafkaProducer只有Kafka broker配置,而没有zookeeper配置。 有没有什么方法我可以增加一个主题的分区数量从生产者端?我运行的是Kaf
我需要向现有的Kafka主题添加分区。我知道可以使用bin/kafka主题。sh脚本来实现这一点,但我更愿意通过融合的RESTAPI来实现这一点。 据我所见,api引用中没有记录在案的endpoint,但我想知道这里是否有其他人能够做到这一点。 编辑:由于在这里似乎不可能使用REST api,我想知道在容器化设置中向现有主题添加分区的最佳实践是什么。例如,如果有将客户ID映射到特定分区的自定义分区
Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。
我有一个使用Kafka 1.0作为队列的应用程序。Kafka主题有80个分区和80个正在运行的使用者。(Kafkapython消费者)。 通过运行命令: 我看到其中一个分区被卡在一个偏移位置,并且随着新记录的添加,延迟会不断增加。 上面命令的输出如下所示: 这是什么原因?此外,不需要使用重置偏移量命令重置偏移量,因为可能不会定期手动监视此服务器。 客户端作为Linux m/c中的并行进程在后台运行
Spark中的任务数由阶段开始时的RDD分区总数决定。例如,当Spark应用程序从HDFS读取数据时,Hadoop RDD的分区方法继承自MapReduce中的,它受HDFS块的大小、的值和压缩方法等的影响。 截图中的任务花了7,7,4秒,我想让它们平衡。另外,阶段被分成3个任务,有什么方法可以指定Spark的分区/任务数吗?
简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所