Kafka 中的工作队列选项
Worker Queue option in Kafka
我们正在开发一个应用程序,它将通过 UDP 从一组设备接收时间序列传感器数据作为字节数组。此数据需要解析并存储在 Cassandra 数据库中...
我们使用 RabbitMQ 作为消息代理并使用基于工作队列的消费者解析数据并将其推送到 cassandra...由于流量增加,我们担心 RabbitMQ 的性能并计划转移到Kafka...我们的理解是同样可以使用kafka中的consumer group来实现...我们的理解是否正确
使用 Apache Kafka,您可以相对轻松地扩展主题。为了能够同时处理更多数据,您需要:
- 在同一个消费者组中有多个消费者,您将能够同时消费多条消息。您受限于一个主题的分区数。
- 增加主题的分区数,增加消费者数。
- 增加经纪人的数量,如果你还要处理更多的数据。
我将按上述顺序处理可扩展性,但 Kafka 可以处理很多。在具有 2 个代理、每个主题 4 个分区和 2 个消费者(每个消费者每个分区使用一个线程)的设置中,消费者将 json 解码为 java 对象,丰富并存储到 Cassandra,它可以处理 30k/ s(数据以 200 个插入语句为一组进行批处理)。
我们正在开发一个应用程序,它将通过 UDP 从一组设备接收时间序列传感器数据作为字节数组。此数据需要解析并存储在 Cassandra 数据库中...
我们使用 RabbitMQ 作为消息代理并使用基于工作队列的消费者解析数据并将其推送到 cassandra...由于流量增加,我们担心 RabbitMQ 的性能并计划转移到Kafka...我们的理解是同样可以使用kafka中的consumer group来实现...我们的理解是否正确
使用 Apache Kafka,您可以相对轻松地扩展主题。为了能够同时处理更多数据,您需要:
- 在同一个消费者组中有多个消费者,您将能够同时消费多条消息。您受限于一个主题的分区数。
- 增加主题的分区数,增加消费者数。
- 增加经纪人的数量,如果你还要处理更多的数据。
我将按上述顺序处理可扩展性,但 Kafka 可以处理很多。在具有 2 个代理、每个主题 4 个分区和 2 个消费者(每个消费者每个分区使用一个线程)的设置中,消费者将 json 解码为 java 对象,丰富并存储到 Cassandra,它可以处理 30k/ s(数据以 200 个插入语句为一组进行批处理)。