我有一个带有2个分区的Kafka集群。我一直在寻找一种将分区数增加到3的方法。但是,我不想丢失该主题中的现有消息。我尝试停止Kafka,修改server.properties
文件以将分区数增加到3,然后重新启动Kafka。但是,这似乎并没有改变任何东西。使用Kafka
ConsumerOffsetChecker
,我仍然看到它仅使用2个分区。我正在使用的Kafka版本是0.8.2.2。在0.8.1版中,曾经有一个名为的脚本kafka- add- partitions.sh
,我想可能可以解决问题。但是,我在0.8.2中看不到任何这样的脚本。有什么办法可以做到这一点?我确实尝试过创建一个全新的主题,为此,它似乎确实根据server.properties
文件中的更改使用了3个分区。但是,对于现有主题,似乎并不在乎。
看来您可以改用以下脚本:
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name
--partitions 40
在代码中,看起来他们在做同样的事情:
AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK(topic, partitionReplicaList, zkClient, true)
kafka- topics.sh
执行这段代码以及kafka-
add-
partition脚本使用的AddPartitionsCommand。
但是,使用密钥时,您必须注意重新分区:
请注意,分区的一种用例是在语义上对数据进行分区, 添加分区不会更改现有数据的分区,
因此如果消费者依赖该分区,这可能会打扰消费者。就是说,如果对数据进行了分区,hash(key) % number_of_partitions
则该分区可能会通过添加分区而被打乱,但是Kafka不会尝试以任何方式自动重新分配数据。
有什么方法实现这一点吗? 我尝试创建了一个全新的主题,对于这个主题,它似乎使用了3个分区,这与文件中的更改一致。然而,对于已有的话题,它似乎并不在意。
我的应用程序调用了一堆不同的外部API类。为了便于这样做,我为每个要调用的外部API设置了一个类,所有这些类都继承自一个基类,该基类的开头如下所示: 是否没有办法在现有对象上设置凭据,或者没有进行大量重构的其他方法?
我有一个名为的现有表。在这个表中,我有5列: persionId 人名 PMid 描述 Pamt 创建此表时,我将和设置为主键。 我现在想在主键中再包含一列——PMID。我如何编写一个语句来做到这一点?(表中已经有1000条记录了)
本文向大家介绍是否可以将HTML5验证添加到Visual Studio?,包括了是否可以将HTML5验证添加到Visual Studio?的使用技巧和注意事项,需要的朋友参考一下 对于HTML5验证,您需要在Visual Studio中安装IntelliSense和验证支持。Visual Studio 2012支持HTML5。 VS 2010具有IntelliSense支持,但是VS 2012添加
问题内容: 我有一些容器通过网络docker通过其IP进行通信。 我可以使用该选项,也可以在运行新容器时使用,但是我想为现有容器设置主机名。 可能吗? 问题答案: 一种方法是创建网络并在该网络中添加其他容器。在网络中添加容器时,可以使用的选项。像这样: 创建一个网络: 在网络中添加容器: 因此,每个容器都可以通过别名看到其他容器(该别名用作主机名)。
我正在使用DocuSign REST API创建一个信封以及签名者。查看API,您可以提供签名者的姓名和电子邮件,因此当签名者接收到要签名的文档并进入DocuSign签名文档时,已经用签名者块中提供的姓名填写了“名称”“占位符”。是否有任何方法来添加关于签名者的其他“占位符”值,如“title”,这样当他们去签名时,这些“占位符”已经填满了(用户可以更新值,如果他们选择)? https://dev