文章目录
0. 概要
本文旨在介绍一种高性能的数据通信架构设计,涵盖关键概念、数据接口设计、进程内与进程间通信、网络通信、任务优先级、状态监控与控制、配置管理和存储系统等方面。
1. 关键概念 (Key Concepts)
我们的架构设计以数据驱动为核心,目标是创建一个轻量级、易于集成的多语言API。核心思想是数据解耦,确保对有效载荷数据的无限制支持,同时保持数据透明性。任务分类和优先级处理以及负载均衡是架构设计中的重要部分。
通过数据驱动的架构,系统能够更好地应对不同子系统之间的数据流转需求,确保数据传输的高效性和可靠性。此外,系统的扩展性和灵活性也是设计中的关键考量因素。
2. 数据接口 (Data Interface)
在数据接口设计中,我们选择基于发布/订阅(Pub/Sub)模式的API,类似于ROS/ROS2,但舍弃了这些框架中使用的IDL格式和protobuf数据格式。我们计划提供一个透明的数据接口,默认支持基于Cap’n Proto的数据格式,并且该接口应具备良好的扩展性,满足未来可能的需求变化。
这一设计不仅降低了数据封装的复杂性,还提高了接口的可扩展性和兼容性。通过提供透明的数据接口,开发者可以更加灵活地选择数据格式,并轻松集成到不同的系统中。
3. 进程内通信 (Intra-process Communication)
在单个进程内的通信设计中,安全且高效地在多个线程间共享数据是基本要求。当多个子系统集成在同一进程中时,确保数据流转的