Aeron 1.47.1版本发布:分布式日志与消息系统的关键修复
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在高性能消息传输领域的表现更加可靠,特别是在金融交易、实时通信等对延迟和可靠性要求极高的场景中。对于现有用户来说,升级到这个版本将获得更好的稳定性和兼容性保障。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0204- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00