我们正在使用 Kafka 构建一个简单的发布-订阅系统。发布者是一项从发布到 Kafka 主题的客户端应用程序接收消息数组(称为块)的服务。我们有 4 个分区和 4 个订阅者实例来处理这些。块(数组)当前最多可以包含 10 条消息(业务限制),但将来可能会增加到 25 条。将每条消息单独写入块中会更好,还是将整个块一次性放入一个 Kafka 事件?
我们的做法是一次执行一个块,以便一个消费者实例可以处理所有消息。其他消费者实例可以处理发布者正在接收的其他块。是否有围绕此类用例的任何指导/推荐实践?
卡夫卡存储字节。这里没有“针对 Kafka”的最佳实践,因此最终取决于您的处理要求。
请记住,Kafka 有默认的记录大小限制,因此如果不覆盖默认设置,则应拆分大型序列化数组。但是,如果您以 Protobuf 或 Avro 等紧凑的二进制格式序列化数据,它将占用更少的空间