首页
/ Bento v1.7.0 版本发布:增强 XML 处理与 Protobuf 支持

Bento v1.7.0 版本发布:增强 XML 处理与 Protobuf 支持

2025-07-01 01:36:21作者:庞眉杨Will

Bento 是一个高性能的数据流处理框架,专注于简化复杂数据管道的构建和管理。它提供了丰富的输入输出连接器、处理器和转换工具,使开发者能够轻松地构建、部署和监控数据流应用程序。Bento 的设计理念强调灵活性和可扩展性,支持多种数据格式和协议,适用于从简单的日志处理到复杂的实时分析等各种场景。

近日,Bento 发布了 v1.7.0 版本,带来了多项重要功能增强和问题修复。这个版本特别关注于 XML 数据处理能力的提升和 Protobuf 支持的扩展,同时也改进了 HTTP 服务器输出功能并修复了一些关键问题。

XML 处理能力显著增强

v1.7.0 版本在 XML 数据处理方面进行了重大改进。新增的 xml_documents_to_jsonxml_documents_to_json:cast 选项为 unarchive 处理器的 format 字段提供了更灵活的 XML 转换能力。这些选项允许开发者将 XML 文档转换为 JSON 格式,其中 cast 选项还能智能地将 XML 中的数据类型转换为对应的 JSON 数据类型,大大简化了异构系统间的数据交换。

更值得一提的是,这个版本引入了全新的 xml_documents 扫描器。这个扫描器能够消费一个或多个 XML 文档流,并将其分解为离散的消息。这一功能特别适合处理包含多个 XML 文档的连续数据流,如从消息队列或文件系统中读取的 XML 数据。xml_documents 扫描器会自动识别 XML 文档边界,确保每个文档都能被正确处理,而不会因为文档边界问题导致数据损坏或解析失败。

Protobuf 支持扩展:远程 Schema 注册表集成

对于使用 Protocol Buffers 的开发团队,v1.7.0 带来了一个令人兴奋的新功能。protobuf 处理器现在支持 bsr 字段,这意味着可以直接从远程的 Buf Schema Registry (BSR) 加载和使用 schema。这一改进显著简化了 Protobuf schema 的管理和分发流程,特别是在微服务架构中,不同服务可以轻松共享和同步 Protobuf 定义。

通过集成 BSR,开发者不再需要手动分发 .proto 文件或担心版本不一致的问题。Bento 现在可以直接从中央注册表获取最新的 schema 定义,确保数据序列化和反序列化的一致性。这一功能特别适合大规模分布式系统,其中多个服务需要交换 Protobuf 编码的消息。

HTTP 服务器输出支持 Server-Sent Events

在输出功能方面,v1.7.0 为 http_server 输出添加了 stream_formatheartbeat 字段,使其能够发射 Server-Sent Events (SSE)。SSE 是一种轻量级的服务器推送技术,允许服务器通过 HTTP 连接向客户端持续发送更新。

这一改进使得 Bento 能够更高效地处理实时数据推送场景,如实时监控、即时通知等。heartbeat 字段特别有用,它可以配置定期发送的心跳消息,保持连接活跃并检测客户端是否仍然在线。对于构建实时 Web 应用程序的开发人员来说,这一功能提供了简单而强大的工具来实现服务器到客户端的实时数据流。

关键问题修复与稳定性提升

除了新功能外,v1.7.0 还包含了一些重要的修复和改进:

  1. 改进了在优雅关闭期间对上下文取消/超时的处理,确保在关闭流时能正确记录错误日志。这一改进使得系统在关闭时的行为更加可预测,便于诊断问题。

  2. 修复了 MessageAwareRateLimit 公共实现的注册问题,确保速率限制功能在各种场景下都能正常工作。这对于需要精确控制消息处理速率的应用程序尤为重要。

总结

Bento v1.7.0 版本通过增强 XML 处理能力、扩展 Protobuf 支持和改进 HTTP 服务器输出,为开发者提供了更强大、更灵活的数据流处理工具。特别是对 XML 和 Protobuf 的改进,使得 Bento 在处理现代数据格式方面更加全面。这些新功能和改进进一步巩固了 Bento 作为构建复杂数据管道的首选框架的地位,无论是处理传统数据格式还是实现实时数据流,都能提供出色的性能和灵活性。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
152
1.96 K
kernelkernel
deepin linux kernel
C
22
6
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
431
34
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
251
9
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
190
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
989
394
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
193
274
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
936
554
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
75
69