当前位置: 首页 > ops >正文

基于分布式状态机的集装箱智能道口软件架构方法

集装箱码头对进出场道口的通过能力始终是要求最高的,衡量道口的直接指标为道口通行效率,道口通行效率直接体现了集装箱码头的作业效率以及对外服务水平,进而直接影响到码头的综合能力。所以,码头普遍使用智能道口实现24小时无人值守,以大幅提升道口的通行效率,单车过闸30秒左右即可通行。这样,在适应进出高峰车流量的同时可大幅缩减码头的道口数量。在这有限的道口配置下,道口软件需要更高的稳定性和可靠性,尽可能保证24小时全年无故障,即使故障出现后也能快速恢复正常,单个道口故障不影响到其他道口的正常作业。否则,道口通行效率会大幅降低,甚至彻底无法通行,很快就会进入排队拥堵状态,即使排故后也不会马上恢复畅通。这不仅影响码头自身的作业生产,也会对社会生活造成困扰和负面影响。

传统道口软件普遍采用单体架构,是因为结构简单,开发容易,部署成本低,只需一台服务器。但是服务程序里任何一个模块出现bug,就可能导致整个系统崩溃。即使单体架构上搭建一套主备结构(见图一),也只是缩短了恢复时间,系统仍然会崩溃,可靠性是不足的。

图一 主备结构下的单体架构

本发明采用分布式架构,将道口服务设计成分布式状态机,可以从根本上提升系统可靠性。

所谓分布式架构(Distributed Architecture),是指在组成集群的多台不同服务器中部署不同的服务模块,通过远程调用(Remote Procedure Call Protocol,简称RPC)和发布-订阅模式(Publish-Subscribe Pattern,简称Pub-Sub)进行协同工作,对外提供服务的服务架构。

所谓状态机(Finite State Machine)也被称为有限状态机,是一种用于模拟和表示系统行为的抽象计算模型。它由一组状态、一个初始状态、一组输入事件以及一组转换规则组成。系统可以在不同的状态之间进行转换,而每次转换都是由特定的事件触发。

本发明将道口服务设计成分布式状态机,以分布式服务的形式部署在分布式服务集群的服务容器(Host)中,利用分布式服务集群的服务注册与发现机制实现服务透明化。也就是说,客户端在访问道口服务时无需知道服务实例的具体网络地址,无需知道它们运行在哪台服务器上,而只需提供道口ID就可以访问得到。比如,可以约定用“一号道口”、“二号道口”等作为道口ID对道口服务实例进行命名、识别和寻址(见图二)。

图二 状态机模型下的分布式架构

分布式服务集群可以保证同一时间同一ID仅会有一个服务实例被激活,激活后不会主动释放,可持续被访问,除非发生崩溃,才会被自动切换到其他服务容器中激活,再继续被访问。也就是说,一个服务实例的崩溃不会影响到容器中其他服务实例的正常运行,单个道口的故障不会影响到其他道口的正常作业。这样,整个系统是非常稳定的,不容易发生整体性的崩溃,显著提升了道口软件系统的稳定性和可靠性(见图三)。

图三 具备容灾机制的分布式架构

http://www.xdnf.cn/news/9851.html

相关文章:

  • 室内VR全景助力房产营销及装修
  • 机器学习与深度学习05-决策树01
  • 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家
  • Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)
  • 直线模组在手术机器人中有哪些技术挑战?
  • “百亿补贴”商家承担比例升至70%-80%,京东外卖家也没“余粮”了?
  • 基于定制开发开源AI智能名片S2B2C商城小程序的大零售渗透策略研究
  • 代码随想录算法训练营 Day60 图论Ⅹ Bellmen_ford 系列算法
  • Visual Studio中的宏变量
  • (ICML-2025) RIFLEx:视频扩散Transformer中长度外推的“免费午餐”
  • NVIDIA英伟达AI图片视频内容描述总结软件describe-anything整合包
  • 十二、FTP服务器配置与应用
  • 【博客系统】博客系统第十一弹:从零开始在 Linux 系统上搭建 Java 部署环境并部署 Web 项目
  • 扫地机产品异物进入吸尘口堵塞异常检测方案
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文
  • 【Linux系统移植】Cortex-A8 Linux系统移植(超详细)
  • [250529] CrateDB 5.10.7 发布:一系列重要修复与升级注意事项
  • 实战指南:步进电机规格书参数解析——以28BYJ48为例(不聊原理,只讲应用)
  • 【HarmonyOS 5】UIAbility上下文切换途中造成的Toast提示展示错窗口的解决方案
  • PyTorch中 torch.utils.data.DataLoader 的详细解析和读取点云数据示例
  • 机动车结构化检测算法AI智能分析网关V4打造全场景应用解决方案
  • 从数据持久化到网络通信与OpenCV:Qt应用程序开发的深度探索与实战
  • 从 API 调用到智能 Agent:面向未来产品的插件化 AI 中台设计
  • Android bindservice绑定服务,并同步返回service对象的两个方法
  • 易经六十四卦象解释数据集分享!智能体知识库收集~
  • PostgreSQL 修改表结构卡住不动
  • MySQL索引与事务
  • 华为防火墙NAPT配置
  • 大模型是什么?