百度无人驾驶apollo项目分布式改造初探
ros本身是分布式的,但是和高并发高可靠的互联网分布式系统比,它又缺少了很多,分布式模块和消息中间件缺乏高可靠设计,没有监控 跟踪 报警模块,也不支持分布式缓存来保证数据高吞吐
1 使用zookeeper,保证ros 节点主从双备,主节点发生故障,随时切换到备份节点
2 引入系统实时监控和报警系统,并使用智能ai技术进行故障异常预测和定位甚至自动解决,引入分布式系统调用跟踪系统,可以跟踪不同子服务的调用链,并发现耗费时间最长的服务并报警,这个可以叫无人驾驶系统的智能运维
3 引入分布式缓存系统和c++高性能序列库,ros所有的数据都是通过本地内存来存放的,这既影响性能,数据量大时也容易出故障,可以先将数据通过序列化存储到分布式缓存系统,需要的子服务直接从分布式缓存系统读取数据并反序列化
4 改造ros的消息中间件,能达到类似rocketmq或kafka的高可靠高性能
这些只能自己改造,而不可能依靠ros组织,因为引入这些系统,为了保障可靠性,至少需要3台高性能计算机,ros组织的主要目的还是支持工业机器人,部署就需要3台高性能计算机肯定和它们的主要目的是不一致,但这对无人驾驶系统是没有问题的,因为无人汽车空间大,提供的电力充足