首页
/ Aeron 1.47.1版本发布:分布式日志与消息系统的关键修复

Aeron 1.47.1版本发布:分布式日志与消息系统的关键修复

2025-06-08 17:06:34作者:谭伦延

Aeron是一个高性能、低延迟的消息传输系统,专为金融交易、实时通信等对延迟敏感的应用场景设计。它采用零拷贝技术和高效的流控制算法,能够实现微秒级的消息传输延迟。Aeron的核心组件包括客户端库、驱动程序和归档服务,支持点对点、发布/订阅等多种通信模式。

关键修复与改进

本次1.47.1版本主要针对一些关键问题进行了修复,提升了系统的稳定性和可靠性。

Archive服务描述符修复

在Archive组件中发现了一个重要的回归问题,当使用以下API时可能导致返回损坏或重复的数据:

  • listRecording - 列出单个录制的描述信息
  • listRecordings - 列出所有录制的描述信息
  • listRecordingsForUri - 按URI列出录制描述信息
  • listRecordingSubscriptions - 列出录制订阅信息

这个问题会影响依赖这些API获取录制元数据的客户端应用。修复后,系统现在能够正确返回完整的、不重复的录制描述信息,确保客户端能够准确获取所需的元数据。

C语言客户端导体修复

在C语言客户端导体实现中发现了不正确的aeron_array_fast_unordered_remove使用方式。这个函数通常用于从数组中快速移除元素而不保持顺序,但错误的用法可能导致数组操作异常。修复后,数组操作将更加稳定,避免了潜在的内存访问问题。

NAK机制优化

改进了NAK(Negative Acknowledgement)机制,现在当间隙长度发生变化时会发送新的NAK。这一改进使得流控制更加精确,特别是在网络条件不稳定时,能够更及时地通知发送方重传丢失的数据包,从而减少恢复时间。

归档ID更新问题修复

修复了在上下文结束时归档ID未正确更新到标记文件的问题。现在当归档ID被设置时,系统会确保将其正确写入标记文件,这对于系统重启后的状态恢复非常重要。

跨平台兼容性改进

针对Java系统测试在Alpine Linux(使用musl libc)上的运行问题进行了修复。Alpine Linux因其轻量级特性在容器环境中非常流行,这一修复使得Aeron能够更好地支持基于Alpine的容器化部署。

C++包装器改进

在C++包装器中修复了头文件导入问题,并新增了aeronDir()方法用于获取上下文中的Aeron目录路径。这些改进使得C++开发者能够更方便地使用Aeron的功能。

性能与稳定性提升

升级了ByteBuddy到1.16.1版本,这是一个用于Java字节码操作和代码生成的库。新版本可能带来性能改进和bug修复,间接提升了Aeron在某些场景下的表现。

总结

Aeron 1.47.1版本虽然是一个小版本更新,但包含了多个关键修复,特别是在Archive服务的元数据获取、C语言客户端的稳定性、NAK机制等方面。这些改进使得Aeron在高性能消息传输领域的表现更加可靠,特别是在金融交易、实时通信等对延迟和可靠性要求极高的场景中。对于现有用户来说,升级到这个版本将获得更好的稳定性和兼容性保障。

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

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
162
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
146
191
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
198
279
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
950
556
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
346
1.33 K