APP下载

基于分布式集群技术的浦东机场企业服务总线架构设计与实现

2023-05-05潘硕华项亚铭

电子技术与软件工程 2023年2期
关键词:浦东总线集群

潘硕华 项亚铭

(上海国际机场股份有限公司浦东国际机场 上海市 201207)

1 概述

1.1 业务背景

浦东机场自1999年开航以来,业务量连年增长,2019年旅客吞吐量超7600 万人次,同期信息化建设亦持续推进和扩大。围绕航班生产相继建成航班信息集成系统及各类生产子系统、机场信息平台、浦东准点等系统,各单位也陆续建设各种管理辅助系统。由于各系统是在不同阶段陆续提出并投入建设,导致技术标准不一致,特别是系统之间的数据交换共享建设标准缺少统一规划。

近年来,中国民航业四型机场建设和数字化转型加速推进,智慧机场作为四型机场的基础支撑以及数字化转型的实现手段,成为国内机场信息化建设的核心目标。上海机场集团在2021年正式提出推进数字化转型、智慧化发展规划纲要(2021-2030年)。规划提出加强数字底座建设,实现一条总线连通所有系统的要求,到2025年实现智慧化跨越发展,跻身国内智慧机场建设领军者行列[1]。

1.2 总线项目概述

为彻底解决机场运行、服务、安全、交通、商业、能源、货运及管理之间的信息传输和共享问题,2022年浦东机场启动企业服务总线(以下简称ESB)项目,打造智慧机场数据底座。截至2023年3月,浦东ESB 与机场集团ESB 实现互联,完成37 个子系统接入和数据共享,开发30 种数据服务,设计1700 余个经治理的数据字段。项目完善浦东机场数据服务治理的结构,实现内外部接口互联的标准化,消除多个数据交换平台并存的痼疾,提升系统间的数据共享能力,节约子系统对接的开发成本和时间。

1.3 分布式集群对ESB的重要性

ESB 系统承载着浦东机场各数据域的海量数据交换工作,具有高并发、高传输、低延时等业务要求。ESB内部是数据传输的血管,ESB 外部连接几乎所有核心生产系统,是未来十年浦东机场新基建核心设施,后续还有20 个内外部系统接入ESB,因此整体技术架构设计极其重要。

基于上述特点,该系统大规模采用业界领先的技术和产品,主要包括分布式架构和集群化部署这两个核心技术,配合一系列负载均衡、中间件、数据库等产品实现了系统的高性能和稳定性。分布式集群技术不仅具备集群的高可用高性能高扩展性特点,还可以通过业务梳理解耦将服务原子化,从而缩短单个任务的执行时间来提升传输效率。中间件产品采用分布式集群技术,可实现整个运行环境的弹性扩展,同时根据中间件的特点,实现不同中间件的集群高可用和负载均衡技术。

2 ESB软件组件综述

2.1 Nginx反向代理

反向代理方式是指以代理服务器来接受外网的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给外网请求连接的客户端,这种代理服务器对外表现为一个反向代理服务器。Nginx是一种轻量级的反向代理(Reverse Proxy)技术,提供请求路由与组合、负载均衡、协议转换、安全认证、服务鉴权、流量控制与日志监控等服务[2]。

2.2 Redis分布式缓存数据库

Redis(Remote Dictionary Server)是基于内存、可持久化的日志型、Key-Value 数据库高性能存储系统,提供多种语言API[3]。它支持丰富的数据结构,包括简单的key-value 类型数据,还提供list、set、zset、hash等数据结构的存储。支持数据的持久化,可将内存中的数据保存在磁盘中,重启时可再次加载使用。

2.3 ES分布式日志系统

ES(Elastic Search)是基于JSON(JavaScript 对象符号)的分布式搜索和分析引擎,适用于文本、数字、地理空间、结构化和非结构化数据等在内的所有类型数据[4]。可从RESTful Web 服务接口访问,并使用模式少JSON 文档存储数据。ES 是基于Java 编程语言,能在不同平台运行,用户能高速搜索海量数据。ES 具备分布式的特征,其存储的文档分布在不同的分片,为防范发生硬件故障,可通过复制提供数据冗余副本。分布式特性使之可以扩展至数百台服务器,并处理PB 量级数据。

2.4 ACE消息中间件

IBM ACE(App Connect Enterprise)将IBM 集成总线技术、IBM App Connect Professional 以及云原生技术相结合,用以提升数字化企业全面广泛的集成需求。IBM ACE 允许跨多个软硬件平台的不同应用程序之间传递业务消息,无需考虑它们所支持的消息格式或协议。不同应用程序可在灵活、可扩展的基础结构中与其他应用程序交互和交换数据。该产品可以用作企业服务总线,为面向服务的体系结构中的应用程序和服务之间提供信道。

2.5 微服务集群

微服务架构风格是一种将单一应用开发为一组小型服务的方法[5]。微服务架构中的每个微服务运行在自己的进程中,微服务间通信采用轻量级通信机制(通常使用HTTP 资源API)。这些服务围绕业务能力构建,可通过全自动独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

2.6 MySQL数据库

MySQL 是一种多用户、多线程的轻量级关系型数据库,与Oracle 数据库相比,MySQL 规模小、功能有限,但它体积小、速度快、成本低,且提供的功能对浦东机场的应用已足够,使其成为广受欢迎的开放源代码数据库。

3 浦东机场ESB整体架构设计

3.1 ESB基础设施环境

ESB 基础设施运行环境基于VMware vSphere 技术的虚拟化平台,物理硬件底层采用DELL 刀片式服务器,配合高密度磁盘和SSD 缓存盘,组成基于vSAN 技术的超融合架构,使ESB 的测试环境、生产环境的数十套操作系统可以快速克隆部署,虚拟化平台提供多项故障切换技术,一旦发生单台物理机故障,可以快速将虚拟机迁移至其他物理机,应用级虚拟机可以实现秒级恢复业务。

3.2 集群总体架构概况

ESB 架构具备规范性和敏捷性双重特点,通过对业务的二次梳理和服务治理,建立机场ESB 服务规范,对部分不具备改造条件的异构系统,使其具备敏捷接入的能力。外部敏捷区域、Gateway 和ACE 集群采用IBM 的ACE(App Connect Enterprise)中间件产品,区域入口和统一入口采用Nginx 中间件,航班信息集成系统接口适配器(Ultra ADP)、微服务集群和管理监控集群采用微服务技术并部署spring boot 和tomcat。高速缓存区部署Redis 集群、业务数据区部署MySQL 数据库集群,日志数据区采用ElasticSearch 集群,数据分析区部署Logstash 和Kibana,分别负责数据抽取和数据UI。ESB 虚拟机主要使用Redhat 企业版系统,部署均采用HA 方式。通过上述架构确保ESB 高可用、稳定性和快速故障恢复能力。如图1所示。

图1:浦东机场企业服务总线服务器架构

3.2.1 Nginx 集群

Nginx 集群提供访问ESB 的统一入口,为满足统一总线架构要求,确保无论是从集团总部、浦东机场或虹桥机场等地访问浦东ESB,都能通过Nginx 集群对各地访问请求进行引导和分流管理,均衡各地访问请求,保证系统压力均衡。统一入口采用4 台Nginx 搭建集群,并分为前置和后置两组。前置组Nginx 通过keepalived搭建HA 并维护VIP(Virtual IP Address,虚拟IP 地址),所有请求通过VIP 访问,前置组只负责请求转发并均衡到后置组Nginx 集群中并提供服务数据的各个环节的处理效率统计分析;后置组Nginx 集群采用多实例,通过Openresty 插件对请求做验证和路由。DMZ 区入口和内部入口都采用keepalived 来搭建HA。

3.2.2 Redis 集群

ESB 搭建Redis 集群提供一套完整的后台缓存系统。客户端随机请求任意一个Redis 实例,然后由 Redis 将请求转发给正确的Redis 节点。Redis Cluster 实现混合形式的查询路由,不直接将请求从一个Redis 节点转发到另一个Redis 节点,而是在客户端的帮助下直接重定向到正确的Redis 节点。集群无中心节点,数据按照槽存储分布在多个Redis实例上,可平滑地扩容/缩容节点,支持高可用和自动故障转移,运维成本低。如图2所示。

图2:ESB 的Redis 集群

3.2.3 ElasticSearch 集群

ESB 通过大数据日志集群提供高速稳定的日志模块。Elasticsearch 集群由三个节点组成,分布式部署保证了集群中节点的容错性,且可根据业务的发展来横向扩展。索引通过设置合理的分片数来保证数据的一致性和完整性。如图3所示。

图3:ESB 的ES 集群

3.2.4 ACE 集群

ACE 集群可通过配置的方式实现灵活管理,能够提升ESB 的处理能力和运行可靠性,集群的节点可以交叉进行配置,能够合理地分配各个集群的计算负载,充分利用和分配计算资源。如图4所示。

图4:ESB 的ACE 集群

3.2.5 微服务集群

微服务架构体现ESB 部署的灵活性和可扩展性。微服务架构目前采用Nginx 与Tomcat 多实例搭建,所有访问微服务的请求通过Nginx 负载均衡到Tomcat 实例中。微服务中的功能(认证,过滤,异常处理,订阅等)在Tomcat 容器中统一管理。

3.2.6 数据库集群

为提升海量数据的处理速度,采用数据库分区技术,所有分区的逻辑属性保持一致。分区将表或索引分离在若干表空间上,用分割治理的方式支撑无限扩张的大表与索引,提高大表与索引在物理层面的可管理性。被分割后的较小分区可以改善表的维护、备份、恢复、事务及查询性能。

数据库集群采用MySQL 的InnoDB Cluster 架构,由单个MySQL 实例作为数据写入的主节点(PRIMARY),其他成员作为从属节点(SECONDARY)。该模式便于系统故障切换,当发生故障或主节点离开时,集群自动选举从属节点并选择新的主节点。集群所有节点均提供读操作功能,通过MySQL Router 进行读负载均衡,实现集群的高并发读取。如图5所示。

3.3 网络架构

浦东机场ESB 部署在核心生产网。总线在网络层面上具备网络隔离分区,网络间通过设置Nginx 实现防火墙和穿透,对外提供统一入口,提供子系统访问,并保证内部服务器网络的独立。ESB 设有DMZ 缓冲区,该缓冲区指外部子系统通过公网访问DMZ 区域访问统一入口时,被防火墙划分出的一片区域。当总线对外部进行访问时,如统一总线场景访问需求时,防火墙分配给总线的NAT IP 地址。此外,ESB 所有主机都部署反病毒主动防御软件,保障信息安全。

3.4 业务架构

ESB 对外与各应用系统、其他集成平台关联。总线提供服务查询功能,实现服务生命周期管理,服务授权,服务分发。系统提供服务接口进行数据交互。如图6所示。

图6:ESB 业务架构图

3.5 应用架构

ESB 管理平台功能可分为管理、运行和监控三大类。具体包括接入系统管理、资源管理、服务管理、统一总线管理、日志管理、系统管理,服务器监控、运行组件监控、服务状态监控等。

4 总线架构的实现

4.1 虚拟服务器清单

如表1所示。

表1:ESB 虚拟服务器列表

4.2 系统性能指标

ESB 在整体性能、切换时间、响应时间等方面达到各项指标要求。系统交易时间小于800 毫秒,非核心业务流程通过异步处理,优化系统交易时间。具有完备的统一日志记录,实现99.9%报文可追溯,且支持1 秒级日志审计查询。系统从虚拟机启动完毕到正常运行时间小于3 分钟。终端操作界面平均每次响应时间不超过1秒。基于总线进行数据交换的平均每次响应时间不超过2 秒,在总线上时间损耗低于系统间数据交换平均每次响应时间不超过2 秒。系统服务接入能力和共享能力大于500 个,接入和管理服务的数量不小于3000 个,单服务消息处理能力大于每分钟5000 条。

4.3 系统可靠性指标

ESB 作为浦东机场数据集成共享体系的中枢系统,高可靠性至关重要并表现为系统能够7×24 小时连续正常运行,使用寿命不低于10年。系统主备完全切换时间小于10 分钟,采用集群运行环境,正常运行时采用双机或三机集群模式。集群内任何节点切换可确保业务不中断,数据不丢失。集群分为内部集群和Nginx 反向代理集群。内部集群包括Redis 和ES,当部分节点发生故障时,其他节点可自动接管服务。微服务集群和ACE集群采用Nginx 反向代理集群模式。Nginx 反向代理在实现负载均衡的基础上,集群之间可相互接管服务,当部分节点故障时,Nginx 将请求转发到其他正常工作的节点。ESB 后台实时监控各服务器和应用状态,并能在管理端展示,用户可及时获取故障节点信息,便于尽快修复确保业务正常运行。

4.4 系统备份策略

ESB 定期对系统数据进行一次完全备份,支持定时自动备份功能,备份文件包括但不限于数据库、运行日志以及其他对于系统恢复所必需的数据。ESB 系统备份策略主要采用应用层面和数据层面两种方式,应用层面采用Nginx 和keepalived 的软负载方案实现主备双机备份,其余组件采用ROSE 提供高可用服务;数据层面依赖于ES 副本功能,实现数据备份,数据在ESB 的ES上存储30 天。

5 结论

本文就分布式集群理论及技术应用开展研究,针对浦东机场航班生产、安全、服务、交通、商业、能源、货运等各个领域关键数据交换共享的业务场景需求,设计并实现ESB 整体架构。基于分布式集群技术可以提供灵活的分布式运行、分布式存储机制,通过一系列安全冗余机制,有效提升稳定性,大幅提高数据转发性能。

ESB 为浦东机场提供了强规范、高扩展、可持续的新基建平台支撑,有效解决前期建设中普遍存在的“烟囱式”和“信息孤岛”等难题。项目创造了浦东机场信息化建设单系统服务器数量之最、主流软件技术综合应用之最,对后续项目建设起到最佳实践和标杆引领作用。ESB 在浦东机场是一个新生事物,需要通过长期监控和定期运维确保系统的稳定性,并对发现的问题持续改进和迭代升级,确保新基建设施长治久安并赋能智慧机场。

猜你喜欢

浦东总线集群
三十年的浦东
海上小型无人机集群的反制装备需求与应对之策研究
“三不”工作:打造人民调解浦东模式
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
多通道ARINC429总线检查仪
浦东公路养护管理信息系统
基于EtherCAT总线的ROV控制系统设计