Apache kafka 在卡夫卡我们可以有多少个分区?

Apache kafka 在卡夫卡我们可以有多少个分区?,apache-kafka,Apache Kafka,我在IoT项目中有一个需求,比如一个名为“NorthBound”(NB)的定制java应用程序最多可以管理3000台设备。设备向SouthBound(SB-Java应用程序)发送数据,SB向Kafka发送数据,然后从Kafka、NB消费消息。 为了管理大约10万台设备,我计划启动NorthBound的多个实例(大约35个),但我希望同一个实例应该接收来自相同设备的消息。e、 g.设备1向NB_实例1发送数据,设备2向NB_实例2发送数据等 为了处理这个问题,我正在考虑创建35个相同主题的分区(设

我在IoT项目中有一个需求,比如一个名为“NorthBound”(NB)的定制java应用程序最多可以管理3000台设备。设备向SouthBound(SB-Java应用程序)发送数据,SB向Kafka发送数据,然后从Kafka、NB消费消息。 为了管理大约10万台设备,我计划启动NorthBound的多个实例(大约35个),但我希望同一个实例应该接收来自相同设备的消息。e、 g.设备1向NB_实例1发送数据,设备2向NB_实例2发送数据等

为了处理这个问题,我正在考虑创建35个相同主题的分区(设备消息),以便每个NB实例可以使用一个分区,并且同一设备的数据应该放在同一个NB实例中。这是正确的方法吗?还是有更好的办法

我们可以在一个Kafka集群中创建多少个分区?考虑到集群中的3个节点(代理),建议的值是多少? 目前,我们在卡夫卡只有一个节点。我们可以继续使用单节点和35个分区吗

假设在启动时我可能只有5-6K设备,那么我将只有2个分区和2个NB实例。逐渐地,当我们添加更多设备时,我们将继续添加更多分区和NB实例。不重启卡夫卡我们能做到吗?可以动态创建分区吗

问候,


Krishan

可以想象,分区的数量取决于许多因素

假设您拥有自Kafka 1.1以来的最新硬件,那么每个代理可以有1000个分区。此外,Kafka已经在集群中测试了100000多个分区

根据经验,建议将分区过度一点,以允许未来流量/使用量的增长。Kafka允许这样做,但这将改变键控消息的分区,这可能是一个问题,取决于您的用例

最后,不建议为生产工作负载运行单个代理,因为如果它将崩溃或失败,您将面临停机和可能的数据丢失。即使只有35个分区,也最好至少有两个复制因子为2的分区