apache-kafka - 我们可以在 Kafka 中有多少个分区?
问题描述
我的 IoT 项目中有一个要求,例如,一个名为“NorthBound”(NB)的自定义 Java 应用程序最多可以管理 3000 个设备。设备将数据发送到 SouthBound(SB - Java 应用程序),SB 将数据发送到 Kafka,然后从 Kafka,NB 使用消息。为了管理大约 100K 设备,我计划启动多个 NorthBound 实例(大约 35 个),但我希望同一个实例应该接收来自同一个设备的消息。例如,Device1 正在向 NB_instance1 发送数据,Device2 正在向 NB_instance2 发送数据等。
为了解决这个问题,我正在考虑创建 35 个相同主题的分区(设备消息),以便每个 NB 实例可以使用一个分区,并且相同设备的数据应该转到同一个 NB 实例。这是正确的方法吗?或者有没有更好的方法?
我们可以在 Kafka 集群中创建多少个分区?考虑到集群中的 3 个节点(代理),推荐值是多少?目前,我们在 Kafka 中只有 1 个节点。我们可以继续使用单节点和 35 个分区吗?
假设在启动时我可能只有 5-6K 设备,那么我将只有 2 个分区和 2 个 NB 实例。当我们逐渐添加更多设备时,我们将不断添加更多分区和 NB 实例。我们可以在不重新启动 Kafka 的情况下做到这一点吗?是否可以动态创建分区?
问候,
克里尚
解决方案
推荐阅读
- react-native - 如何获得反应原生动态滚动视图的实际高度
- ios - 如何在 uicollectionview 单元格下创建线条?(iOS)
- javascript - REGEX - 在分隔符之间取任何东西
- android - FragmentActivity 和 Fragment 之间如何通信?
- javascript - Javascript图表:如何隐藏数据
- serial-port - 即使在重新启动 Ubuntu 18.04 后,具有拨出组权限的非 root 用户的串行端口权限也会被拒绝
- scala - 从数据框制作 avro 模式 - spark - scala
- istio - Istio 服务入口不工作
- reactjs - 如何在 URL 中发送一长串参数
- sql-server - SQL Server:IsMSShipped = 0 但仍返回系统 SP