Karafka v2.5.7 现已发布。Krafka 是一个用于简化基于 Apache Kafka 的 Ruby 应用开发的框架,它允许开发者在使用异步 Kafka 消息时使用类似于标准 HTTP 约定(params 和 params_batch)的方法。Karafka 不仅可以处理传入的消息,而且还提供了用于构建接收和发送消息的复杂数据流应用程序的工具。
此版本更新内容如下:
- [Enhancement] 强制关闭期间,报告详细的阻塞信息(活动监听器、存活工作进程和正在处理的作业),而不仅仅是汇总计数。
- [Enhancement] 改进
ForcefulShutdownError描述,以清晰说明何时以及为何会触发该异常。
- [Enhancement] 在
BatchMetadata构建器中添加messages.last缓存,以避免重复遍历数组。
- [Enhancement] 优化
VirtualOffsetManager#mark,使用单次数组扫描代替单独的include?和index调用(Pro)。
- [Enhancement] 优化
VirtualOffsetManager#materialize_real_offset,使用keys.sort替代带元组解构的to_a.sort_by(Pro)。
- [Enhancement] 优化
IntervalRunner#call,使用单次monotonic_now调用,而非每次调用两次。
- [Enhancement] 支持 Swarm 中的 WaterDrop
:fd模式。
- [Maintenance] 在 CI 中同时使用
:fd和:threadproducer 后端。
- [Maintenance] 在集成测试主题名称中包含 spec 文件哈希值,以便在 Kafka 日志中更容易进行跟踪(#3056)。
- [Fix] 删除多代理健康集成规范中的重复主题创建(#3056)。
- [Fix]在 swarm forks 中重新创建 producer 时,保留 producer-specific kafka 设置(例如
enable.idempotence)。
更新说明:https://github.com/karafka/karafka/releases/tag/v2.5.7