维护_其它进程间通信(IPC Inter-Process communication)和分布式通信框架列述

除了你提到的 VRPN、LCM、DDS 和 gRPC 这四个在特定领域广泛应用的通信框架外,还有许多通用或专用的进程间通信(IPC)和分布式通信框架在工业界和学术界被广泛使用。以下是一些主流且流行的 IPC/通信中间件或框架,按类别和适用场景分类整理:

一、通用高性能消息中间件(支持跨进程、跨机器)

  1. ZeroMQ(ØMQ)

    特点:轻量级、无中心 broker、支持多种通信模式(REQ/REP、PUB/SUB、PUSH/PULL 等)

    优势:极低延迟、高吞吐、灵活拓扑、支持 TCP/IPC/UDP 等传输

    适用场景:金融交易系统、嵌入式、科研原型、微服务胶水层

    语言支持:C/C++、Python、Java、Go 等 40+ 语言

    注意:不是传统消息队列(如 RabbitMQ),而是"socket on steroids"

  2. Apache Kafka

    特点:分布式日志系统,高吞吐、持久化、支持流处理

    优势:水平扩展、容错强、与 Flink/Spark 集成好

    适用场景:日志聚合、事件溯源、实时数据管道

    缺点:延迟较高(通常 >10ms),不适合实时控制

  3. RabbitMQ

    特点:基于 AMQP 协议的经典消息队列,支持复杂路由

    优势:可靠性高、管理界面友好、支持多种协议(MQTT、STOMP)

    适用场景:任务队列、异步解耦、企业级应用

    缺点:性能低于 ZeroMQ/Kafka,有中心化 Broker 开销

  4. NATS

    特点:高性能云原生消息系统,支持 PUB/SUB 和请求-响应

    变种:

    NATS Core:轻量、低延迟

    NATS JetStream:增加持久化和流式存储

    优势:简单、快速、安全(支持 TLS/JWT)、适合微服务

    适用场景:IoT、云原生服务通信、事件驱动架构

二、现代 RPC 框架(类似 gRPC 的替代品)

  1. Apache Thrift(Facebook 开源)

    特点:跨语言 RPC 框架,IDL 定义接口,支持多种传输/协议组合

    优势:成熟稳定、支持 C++/Java/Python/Go 等

    对比 gRPC:更灵活(可选 Binary/JSON/TCompact 协议),但生态略弱

  2. Apache Dubbo(阿里开源)

    特点:Java 为主的高性能 RPC 框架,支持服务治理

    优势:与 Spring 生态深度集成、负载均衡、熔断、监控完善

    适用场景:大型 Java 微服务系统(国内广泛使用)

  3. Cap'n Proto

    特点:由 Protocol Buffers 原作者开发,零拷贝序列化 + 内置 RPC

    优势:比 Protobuf 更快(无需 decode),支持对象指针

    适用场景:高性能本地/网络通信(如 Sandstorm.io

  4. FlatBuffers(Google 开源)

    特点:零拷贝序列化库(无 RPC 层,但常与自定义 socket 结合)

    优势:访问速度快、内存占用低

    适用场景:游戏引擎(Unity/Unreal)、移动端、嵌入式

三、机器人/自动驾驶领域专用(除 LCM/DDS 外)

  1. ROS / ROS 2(Robot Operating System)

    ROS 1:基于 TCPROS/UDPROS + 自定义 master,底层用 XMLRPC + TCP

    ROS 2:基于 DDS(如 Fast DDS、Cyclone DDS),但提供统一 API

    注意:ROS 本身是框架,其通信机制依赖底层(DDS 是核心)

  2. YARP(Yet Another Robot Platform)

    特点:模块化机器人中间件,支持多种传输(TCP/MPI/shared memory)

    优势:适合人机交互、认知机器人

    用户:意大利 IIT(iCub 机器人)

四、操作系统级或轻量级 IPC(本地进程通信)

复制代码
虽然不是"框架",但在高性能本地通信中常用:

技术 特点

共享内存(Shared Memory) 最快 IPC,需配合信号量/互斥锁同步

Unix Domain Socket 本地进程通信,比 TCP 快,支持流/数据报

D-Bus Linux 桌面/系统服务通信标准(如 systemd、GNOME)

POSIX 消息队列 / System V IPC 传统 Unix IPC 机制,逐渐被 socket 替代

五、新兴或特定领域框架

  1. Ice (Internet Communications Engine)

    特点:企业级 RPC 框架,支持 Glacier2(防火墙穿透)、IceGrid(服务部署)

    优势:功能全面、支持切片 IDL、适用于电信/金融

    现状:商业开源(GPL/商业许可),社区活跃度一般

  2. Envoy + xDS APIs

    特点:虽然 Envoy 是代理,但其 xDS 协议(CDS/RDS/EDS)已成为服务发现通信事实标准

    关联:gRPC 服务常通过 xDS 动态配置

  3. WebRTC DataChannel

    特点:浏览器/设备间 P2P 低延迟数据通道

    适用场景:多人 VR/AR 协同、实时协作应用(绕过服务器)

六、总结:按场景推荐