1、第 卷第 期计算机应用与软件 年 月 基于 的 缓存系统设计与实现程远瑶王昕怡陈逸郭佳(通号城市轨道交通技术有限公司北京 )收稿日期:。程远瑶,硕士,主研领域:通号城市轨道信号信息研究开发。王昕怡,硕士。陈逸,硕士。郭佳,学士。摘要随着城轨信号系统信息化的发展,列车自动监控系统(,)云化、数据融合、全自动驾驶等新兴技术的应用导致各系统间数据类型及数量急剧增加,在实时性、可靠性、业务开发成本等方面为 的分布式协作系统架构带来挑战。提出一种基于 的 缓存系统设计,具备高实时性、高可用性和灵活的数据扩展性,同时结合 分布自律的特性,实现了网络冗余、数据同步等功能。关键词列车自动监控系统分布式缓存 城
2、市轨道交通信号系统中图分类号 文献标志码 :(,),(),引言信号系统是城市轨道交通列车控制的神经中枢,列车自动监控系统()是整个城市轨道交通信号系统的运营核心,负责监视和控制线路中所有列车的运行状态,是城轨信息化体系建设中的重要一环 。城轨线路地域分布广,对实时性要求高,车站节点需要具备独立运行的能力,并由中心集中控制所属车站 。因此 一般设计为分布自律、中心集中控制的系统,且系统关键设备及网络结构采用冗余的方式部署,保证系统具有高度的可靠性和可用性。全自动运行系统是城轨列车控制自动化发展的新阶段 ,系统需要接入更多其他专业的数据,增加与其他系统联动。现有的 存储系统无法满足日益增长的数据交
3、互需求,因此迫切需要一套实时强、可靠性高、灵活易扩展、支持分区容错的缓存系统。目前常用的分布式缓存架构多以内存数据库 、为存储核心搭建集群 ,缓存热点数据、提高系统访问的并发量,具备极高的读写性能和可靠性,但系统中各节点对缓存数据的访问会因网络传输距离增加带来整体响应时延的增加,不适合地域分布广、对实时性要求高的应用场景。为解决上述问题及挑战,本文基于 强大的性能优势和灵活的数据结构,根据 的特点,设计了适用于 的缓存系统,提供实时性强、可靠性高的数据服务。系统设计方案分布式系统遵循 (,)定理进行设计,即在构建分布式系 计算机应用与软件 年统时,一致性()、可用性()、分区容错性()这三个要
4、素最多只能同时实现两点,不可能三者兼顾。由于轨道交通信号系统领域对系统性能有高安全性、高可靠性的需求,高可用性、高分区可用性是更系统更核心的设计目标,对一致性的要求只需保证在系统数据收敛后,对系统的所有访问都将返回相同的结果,满足最终一致性即可。因此在 分布式缓存业务场景中,以满足可用性、分区容忍性、最终一致性为目标,以保证系统稳定可靠地运行。由于城轨线路长度一般在十几公里到上百公里,地域延伸广,为保证系统稳定可靠及实时性,系统采用分布自律系统,车站分机提供车次跟踪、进路选排等业务服务,中心服务器提供全线监视、控制等服务,区域故障,不影响系统提供基本服务。基于以上 业务场景,本文设计缓存系统采
5、用混合分割式和复制式的拓扑结构,系统设计方案如图 所示。基于 的 分布式缓存系统采用 作为实时信息的缓存数据库。为快速服务实时响应,避免远距离站间网络通信带来的时延影响,本文方案将 模块与其他业务模块置于同一物理节点中,各节点缓存独立信息,为本节点提供数据服务,节点间数据通过同步达到数据最终一致性。每个缓存节点设立一个或多个缓存数据的备份,用于保障数据的可靠性。在本文中,不失一般性地建模为一个中心三个车站缓存数据库,中心缓存数据库对应三个备机,各车站各对应一个备机。本分布式缓存系统由中心和车站的缓存数据库构成,中心缓存数据库通过主主同步的方式从各车站缓存数据库同步数据,各缓存备机通过主从同步的
6、方式实现与缓存数据库的数据同步。图 基于 的 缓存系统整体方案 系统结构详细设计本文基于开源组件 设计实现了满足业务场景需求的高可靠性、高实时性的 分布式缓存系统。为保证系统具有高度的可靠性和可用性,系统关键设备及网络结构采用冗余的方式。单物理节点的 分布式缓存系统详细设计如图 所示。作为缓存主程序,直接与 系统业务组件进行数据交互,存储实时数据,提供查询、存储、修改等服务;与高可用模块交互信息,负责物理节点 冗余设备的维护、切换、设备主从状态发布。管理组件负责监控与管理 状态信息,包括 主从状态、运行状态等;与网络组件交互数据,实现网络冗余控制;与数据同步模块交互信息,实现不同节点数据同步。
7、图 分布式缓存系统结构详细设计 系统功能详细设计 缓存数据结构设计 系统中唯一物理设备对应多个属性,包括列车信息、轨道、道岔、信号机等状态信息、状态信息等,数据结构具有明显的树状结构特点,与 提供的键值对形式的 数据结构特点类似。使用 结构存储可以使业务组件轻松访问到具体设备目标属性的状态值,避免非必要的冗余信息访问。为避免 缓存中键冲突问题,需要设计设备的唯一标识为键,属性值为对应的设备具备的属性或者车站下特定设备标识。以联锁表示信息为例,缓存的数据结构设计如表 所示,为线路码 站码;为设备类型和设备 的组合;为设备的状态色码值。与 可以表征某线路某站的某个特定设备,具备全局唯一性。表 联锁
8、缓存标识信息数据结构 线路码 站码设备类型 设备 状态色码值设备类型 设备 状态色码值设备类型 设备 状态色码值设备类型 设备 状态色码值第 期程远瑶,等:基于 的 缓存系统设计与实现 网络冗余功能设计网络冗余是工业网络的一项保障策略。作为快速反应备份系统,网络冗余的目的是减轻意外中断的风险,通过即时响应保证生产连续,从而降低关键数据流上任意一点失效所带来的影响。系统涉及安全相关,为保证系统的可靠性、实时性,在运输层采用双网冗余设计,在双网的情况下,即使某一单网连接故障也不应该影响正常的通信,从而保证传输的可靠性。双网需要实现数据的冗余传输功能,发送方要将一个数据包发送到两个单网连接上,两个同
9、样的数据包先后从两个单网连接到达接收方,接收方取先到的数据包,丢弃后到的数据包。为了实现该功能,通过设计双网协议对单网连接进行封装,增加双网序列号用于唯一标识在两个单网上传输的数据包,如表 所示。双网的序列号为 字节(位)整数,假设传输速度为每微秒发送一个数据包,该序列号发生溢出需要 多万年的时间,因此理论上可以保证该序列号永远都不会重复,实现对数据包的唯一标识。表 双网协议包格式序号内容字节内容说明双网序列号用于双网数据包的唯一标识;程序启动后从 开始递增计数,到达 字节限制后变成 应用数据不属于双网层 数据同步功能设计为保证数据的一致性,需要通过设计适配 系统的分布式缓存同步策略,保证车站
10、、中心各节点数据的统一。分布式缓存系统中的数据同步分为:节点主从同步、数据冗余备份即车站节点、中心缓存节点主机与热备从机的同步;节点主主同步,多主机节点间的数据同步即车站节点主机之间、车站节点主机与中心节点主机间的数据同步。)节点主从同步方案。本文通过在 节点对应的 服务设定主从角色,建立缓存主从角色与 系统服务器主备机的对应关系。客户端通过 和端口标识相应节点的 实例并设置主从关系。车站和中心缓存节点均采用冗余备份机制,且缓存主从节点间采用全量同步结合增量同步的方式实时备份缓存数据。节点主从初始化连接状态后,进行全量同步,将主节点缓存中所有数据复制一份,写入从节点;全同步结束后,进行增量同步
11、,将主节点的写操作同步到从服务器上。基于 的 分布式缓存主从同步方案具体如下:()初始化 分布式集群,各节点服务器的初始化主备状态均为主机,各节点 缓存的初始化主从状态均为主机。()各节点服务器通过加权竞争算法判断并切换自身主备状态。()缓存的主从状态随服务器主备状态进行自适应的切换:当服务器为主机,通过 客户端将对应 设为主机;当服务器为备机,将对应 设为主服务器对应 的从机。()服务器通过心跳信息维护 主从状态,当缓存状态异常,如缓存重启、网络连接异常、与其他缓存连接异常等,服务器将标记 异常状态信息,改变相应竞争因子,实现故障自动识别与切换。当 系统服务器主备机状态发生切换,或缓存的网络
12、连接等状态信息发生故障,分布式缓存系统的主从状态需要进行切换。主从复制功能虽然内置了基于故障检测的主从切换策略 ,但 系统的主备切换需要根据集群机器的网卡状态、接口状态、主要进程状态和集群设备间心跳连接状态进行判断,内置的主从切策略不能满足 系统的业务场景需求。本文提出一种加权竞争算法,根据影响主备切换的系统状态条件建立状态矩阵,经过配置的加权参数矩阵的处理,将节点的状态量化为竞争因子,通过比较竞争因子的大小确定集群各节点的主备状态。定义关于离散时间的竞争因子函数如式()所示。()()()式中:()为节点在 时刻的竞争因子;()为影响主备切换的系统状态矩阵关于离散时间 的函数;为各类状态的影响
13、因子矩阵。其中,影响主备切换的系统状态矩阵如式()所示,矩阵元素()为网卡状态、联锁接口状态、限速通道状态、列车通道状态、通道状态、接口状态、主要进程状态、集群设备间心跳连接状态等节点相关的状态信息关于离散时间 的抽象模型,当()时表示状态正常,()时表示状态异常。()()()()(),()各类状态的影响因子矩阵如式()所示,矩阵元素 为各节点状态信息的权重表示各状态信息对节点能否正常运行的影响程度,可以根据实际情况进行灵活配置。()在竞选主机的判决中,()越大表示被判断为 计算机应用与软件 年主机的可能性越大。通过式(),集群中每个节点计算 时刻本节点的 (),并将本节点竞选因子广播到集群。
14、假设集群大小为 ,时刻集群中本节点接收到的竞争因子矩阵如式()所示。()()()()本节点通过比较当前时刻 ()与接收到的上一时刻竞争因子矩阵 ,判断本节点主备状态。若 ,(),则本机为主机;若 ,(),则本机为备机;若以上两种情况均不符合,表示存在一个或多个主机与本机竞争因子相等且最大,则进一步比较相同竞争因子主机的唯一标识通用唯一识别码(,),最大的节点当选主机。)主主同步方案。中心节点缓存中的数据是所辖范围内所有车站节点缓存的数据的集合。各车站节点除保存本车站缓存数据外,还需保存相邻节点缓存数据。本文利用 的 数据结构,采用生产者消费者模式实现高可靠性、高实时性的缓存数据同步。基于 的
15、缓存系统主主同步方案如图 所示,需要同步数据的节点作为生产者将数据以哈希键值对的形式写入本节点时序消息队列中,需求同步数据的节点作为消费者获取生产节点消息队列中数据。通过消息队列的形式,将数据同步解耦为异步模式,节点将需要同步的数据以时序序列的形式缓存在节点内存中,消费节点主动检测队列中数据更新,读取未消费数据,实现节点间数据同步。图 主主同步方案使用 中 结构存储数据流,是一个时序的、支持多播的可持久化的消息队列。系统中,各节点需要同步的数据都为实时状态信息,将同步数据划分为全体状态信息和变化信息,当前状态可通过过去一段时间内全体消息加上增量的变化信息恢复,在消息队列中存储全体信息和变化信息
16、,将标识全体状态信息的消息 存储在 中,消费者通过消息 ,获取当前时间最近的全体信息,消费后续变化信息持续同步数据。全体消息 失效时,发送请求包,生产者收到请求后,检查一定时间段内是否处理过请求信息。若未处理过,则写入全体信息,更新 中全体消息 ;若已处理,忽略请求。性能评测为保证业务系统的高效、稳定,分布式缓存需要满足极高实时性、可用性,系统响应速度是衡量这一系统性能的关键指标。此外,中 的不同参数也对系统性能产生影响。因此,本文对基于 的 分布式缓存系统的响应速度、响应性能进行测试与分析。测试环境搭建 集群环境,利用重庆五号线的生产环境数据进行功能和性能测试,本次测试环境中,集群由一个中心
17、服务器与三个车站分机四个节点组成。硬件环境配置物理节点性能指标均为 主频 ,内存 ,可用磁盘空间 以上,网卡为 个 以太网卡。软件配置测试环境操作系统版本采用 ,内核版本 ,版本采用稳定版 ,使用 程序对 的存储状态及内存使用情况进行监控。测试结果与分析 响应速度性能模拟实际场景中城市轨道交通信号系统的 负载,利用重庆五号线生产环境数据对 缓存进行性能测试。建立多个缓存客户端连接,测试不同连接数下系统平均每秒的响应次数,测试结果如图 所示,可以看出,在连接数为 到 时,随着连接数的增加,系统响应速度性能会有一定提升;当连接数继续增加,系统的响应速度性能会有一定程度的下降。系统并发量一般在 ,缓
18、存系统的平均响应的请求数达 次 以上,可以满足系统对响应速度的需求。图 实际业务场景中系统响应性能第 期程远瑶,等:基于 的 缓存系统设计与实现 响应性能由于主主同步中 的消息队列长度参数会对吞吐量产生影响,因此在 配置不同消息队列截取长度参数、有无容忍长度误差的情况下,对不同写入次数的执行时间进行测试。在单连接场景下,系统的吞吐量性能如图 所示。可以看出,执行时间与写入次数呈线性关系;在消息队列截取长度较大时,有容忍长度误差时系统性能更优;相同容忍长度误差情况下,截取长度较小的执行时间更短,性能更优。图 单连接场景下 响应性能 结语本文提出基于 的分布自律的缓存系统设计,实现实时信息的增删改
19、查,基于工业信号系统需求,实现了双网冗余、数据同步等功能,保证了系统的高可用性和数据的高一致性。以重庆五号线的实际业务场景为测试环境对本文所设计的系统进行性能测试,结果表明基于 的分布自律的缓存系统具有响应速度快、吞吐量大的性能,可以满足信号系统高可用性、高数据一致性和高实时性的要求。参考文献吴汶麒 城市轨道交通信号与通信系统 北京:中国铁道出版社,:郜春海,刘波,简锐锋,等 新一代城轨信息化体系中 系统发展 都市快轨交通,():,余向海 城市轨道交通列车自动监控系统模块分析 电子工程师,():孙章,何宗华,徐金祥 城市轨道交通概论 北京:中国铁道出版社,:郜春海,王伟,李凯,等 全自动运行系统发展趋势及建议 都市快轨交通,():,:,董昭通,李小勇 面向大数据的分布式缓存设计 通信技术,():,:,():曾超宇,李金香 在高速缓存系统中的应用 微型机与应用,():(上接第 页):,:,:,():,李勤荣 美英人员落水险情搜救截止时间研究 水运管理,():?肖方兵 海上搜救决策支持系统关键技术的研究 大连:大连海事大学,廖守亿 复杂系统基于 的建模与仿真方法研究及应用 长沙:国防科学技术大学,:庞维建,李辉,黄谦,等 集群无人机要地攻防作战 建模仿真分析 信息工程大学学报,():饶明波 基于 战场仿真实体模型研究与实现 南京:南京航空航天大学,():():,