基于云平台的批量话单快速解码方法

2023-06-08 08:10武小波李建林
现代计算机 2023年8期
关键词:话单漫游解码

武小波,李建林

(1.中国电信山西分公司,太原 030006;2.山西应用科技学院,太原 030006)

0 引言

漫游话单是用户离开本省使用移动终端通话产生的使用记录,因记录落在漫游省,需要通过编码处理后,利用特殊途径回传给用户归属省进行处理。随着用户数量和出省使用量的增加,漫游话单量持续增加,对本地处理系统的性能考验越来越高,目前的漫游话单处理系统以集中物理数据库为基础,对漫游话单数据进行统一解码处理,需要将配置文件预先设置在数据库,处理话单时批量读取配置到缓存进行读取,整体处理时效在分钟级,其性能会随着数据量的增加而逐渐降低,且系统扩充涉及到的修改量和扩容费用庞大,影响了系统对漫游话单的解码处理速度[1]。

本文提供了一种基于云平台的快速处理批量编码话单的方法,利用分布式计算技术和文件存储技术,取消传统物理库加缓存机制,达到快速处理编码话单的能力。

1 技术应用

1.1 云平台

云平台是应用廉价的服务器,在不同机房搭建的分布式处理集群,云平台搭建时采用分层架构,即Iaas、Paas、Saas 三层。Iaas 层属于硬件资源层,使用统一的管控平台进行资源管理;Paas 层是组件层,统一搭建数据库、缓存、中间件等,进行组件资源的统一分配;Saas 层部署应用,采用主备方式进行应用的搭建,确保应用使用的安全[2]。

本文讨论的云平台是使用内网方式组网,通过内部交换机安全、可靠地传输数据[3]。云平台分为三层四个部分,最下面的一层为Iaas的硬件资源层,包括基础硬件资源层和资源调度层,基础硬件资源层提供服务器资源、网络资料、存储资源等系统运行的基础硬件环境,资源调度层实现对基础硬件的管理和控制,可以实现对硬件资源使用率的弹性计算,能根据应用的需求实现资源的灵活分配,可以对资源进行动态的扩缩容管理;第二层为组件运行的Paas 层,有进行数据存储的分布式数据库,文件存储的分布式文件系统,用于处理消息的分布式消息中间件,实现数据临时访问的分布式缓存,进行任务调度的组件,还有用于平衡应用处理的负载均衡组件;第三层为应用部署的Saas 层,应用有采集中心、预处理中心、剔重中心、批价中心四个,其构成了系统对外的统一应用能力;除了三层功能外,系统架构还设计了运维管理部分,用于对各层的监控,建立规范约束,进行日常的安全管理,实现运维操作。其结构如图1所示。

图1 云平台总体结构

1.2 分布式云计算

传统运营商的话单存放在集中搭建的物理数据库上,数据统一存放在磁盘上,集中部署的资源以共享为主,包括CPU 处理器、内存资源、存储设备等,资源依赖于一个商用的操作系统进行管理。虽然已经出现的固态硬盘、闪存硬盘等高性能硬件,带来了数据存储、读取的速度提升,但是依然存在海量数据读写性能瓶颈、数据灾备恢复时间长等问题[4]。随着对外服务质量要求的提升,利用云资源实现从集中式到分布式的变革成为新的要求,云资源可以部署在集中或分布式的数据中心上面,由物理集群或虚拟计算资源组成,实现集中式的磁阵计算向分布式云计算发展成为趋势[5]。在分布式计算中,处理器资源和内存资源,可以相互紧耦合,也可以虚拟化实现松耦合,资源通过管理工具实现共享,分布式计算由一个分布式管理系统和众多独立自治的服务器组成,各自拥有独立运行的内存,相互通过计算机网络实现信息交互[6]。

分布式的云计算系统建立在大量自治的服务器节点上,节点之间通过SAN、LAN 或WAN 网络,实现跨网络层级方式的互连。本系统采用内存存取的分布式云计算系统,基于物理内存存储和读取数据,访问性能高,将数据统一存放在物理内存中,可以充分利用内存访问的超强速度优势,实现快速的I/O 交互。分布式部署,可以承载的数据量大,应用部署在互通网络的多个节点上,对外可以提供统一的访问入口[7]。采用文件形式组织数据结构,文件存储是将话单依据业务类型,直接解析放到文件中,不再放到传统物理数据库中,数据会以单条信息的形式存储在文件夹中,正如将几张纸放入一个文件袋中一样。当需要访问该数据时,计算机通过相应的路径查找[8]。存储在文件中的数据会根据数量有限的元数据来进行整理和检索,这些元数据会告诉计算机文件所在的确切位置,它就像是数据文件的库卡目录[9]。

依据摩尔定律的发展,服务器的硬件费用逐年降低,其运算速度逐年提高,应用系统充分利用分布式云计算的快速部署、高速计算、动态扩展能力,加上文件存储的丰富多样性,将极大提升对漫游话单的处理效率[10]。

1.3 话单编码技术

为了确保话单的安全传输,运营商的话单普遍采用ASN.1 编码技术,ASN.1(abstract syn‑tax notation one)是一种抽象语法标记,它定义了抽象数据类型形式标准,是一种通用的用于表示数据层次的数据结构。抽象语法让使用者可以根据实际需要定义数据类型,并指明这些数据类型的值。ASN.1使用一整套正规的格式来描述对象的结构,实际使用过程中不管语法上的指代,也不管如何执行,这种语法标记不关心执行的应用程序。

2 快速解码设计

漫游话单处理需要经过采集、预处理、剔重等环节,各个环节需要读取配置信息,才能正确对话单进行解析。本文采用内存分层多单元并行处理方法,改变传统漫游话单采集、预处理、剔重信息置于物理库的方式,直接将采集、预处理、剔重的解析信息部署在云平台,利用分布式计算速度快的优势并行计算解码程序,将各个环节的操作时间压缩至秒内。

2.1 设计思想

将服务器的内存块逻辑分层,一层存放内存文件数据,将解码信息存放此单元,用于批量话单的解码检索、解码信息存放。一层存管理网络文件数据,用于记录通过网络传输的文件信息,保障文件处理不重复。一层进行数据处理,用于根据上两层信息快速进行文件中的话单解码。处理过程中充分利用分布式计算的快速、安全特性,对话单文件实现类似流水操作。

2.2 整体架构

本方法快速解码话单原理图,如图2 所示,该系统包括20 个处理模块M1,M2,…,M20,每个模块中都包括内存文件数据库单元A,网络文件管理单元B以及相连的数据处理单元C,其中A1表示第一内存文件数据检索单元,B1表示第二网络文件数据管理单元,C1 表示第三数据处理单元。处理主机分为1主2备模式,一台主机进行处理操作时,另外两台主机进行同时备份操作,出现主机宕机问题影响话单的解码流程时,两台备份主机没有主次备份区别,直接接管进行操作。

图2 整体架构

处理流程为,通过两级查询处理生成当前索引记录的查询结果,将所有查询结果发送查询请求的网络文件数据管理单元B。网络文件数据管理单元B,用于存储话单文件,以及为各数据处理单元C 分配目录文件。数据处理单元C,用于进行解码程序的操作和运行,以及执行分配给自身的任务,收集自身及本系统其他正常工作的数据处理单元C的执行结果。

具体处理步骤如下:

步骤1:将漫游话单文件中的通话记录的索引存储到云平台的内存文件单元A中。

步骤2:将需要处理的话单文件存储到网络文件管理单元B中。

步骤3:数据处理单元收到查询请求后,转发给内存文件数据库单元A。

步骤4:内存文件数据库单元查找符合条件的索引记录,返回查询结果。

步骤5:数据处理单元C 将查询结果作为一批次任务,分配给自身及系统中其他正常工作的数据处理单元。

最后将上述执行结果进行汇总处理后返回,结果落地为文件,之后进行剔重等环节操作。

2.3 集群部署

本系统部署在高可用的集群上,采用间隔5公里的双中心双机房搭建集群。集群搭建需要利用一组服务器,服务器作为一个整体向用户提供所需资源,这些单独的服务器系统就是集群的节点。集群的部署需要具备高可用,高可用集群的部署是为了使集群的整体服务的质量高,能保障应用的连续运行,以便减少因服务器硬件和软件的运行故障所带来的损失。如果应用运行的某个节点故障,它的备用节点将在几秒钟的时间内接管业务。高可用集群通过智能调度机制,保障业务程序对外提供服务的不间断,把因为软件、硬件等因素出现的故障对业务的影响降低到最小程度。集群部署架构如图3所示。

图3 集群部署架构

3 实验

3.1 实验环境

本实验搭建集群测试框架整体效果,实验基于Python3.6.8,应用Zookeeper 进行集群资源调度,话单解码使用C++完成撰写,使用Python作为测试编程语言。配置参数见表1。

表1 集群配置

表2 实验结果

3.2 实验数据

在实验中,为规避数据异常丢失的风险,提高数据的安全性,服务器集群采用一主两从部署,主服务器存储磁盘中的文件X,另外两个文件副本将同时存储在备服务器。当主服务器所在物理设备发生故障,文件X 在主服务器上不能被访问,但是存储在另外两个服务器上的文件副本可以被正常访问,文件系统仍能正常对外提供文件X 的数据。由此可以增加系统的可靠性,数据的安全性。

内存文件数据检索单元A 用于存储话单文件中的通话记录的索引,用于查找符合查询条件的索引记录,并逐条读取符合查询条件的索引记录中的特征字段和文件名字段,使用地市ID 和用户ID 组成的两层查询条件,精确分配给各个正常工作的网络文件数据管理单元,以及执行分配给自身的任务,收集自身及上述其他正常工作的网络文件数据管理单元B的执行结果。

根据当前任务,网络文件数据管理单元中查找相应的话单文件,并在找到的话单文件中查找对应的通话记录,即当前网络文件数据管理单元根据收到的位置信息,读取其中的漫游话单记录内容并汇总,将汇总结果返回给数据处理单元C。上述漫游话单记录的索引包括主被叫号码、通话起止时间、通话记录在话单文件中的偏移量以及上述话单文件在上述网络文件管理单元中的文件名等。

数据处理单元C 通过解码文件在本地索引记录中查找符合查询条件的索引记录,逐条读取符合查询条件的索引记录中的偏移量字段和文件名字段,生成解码结果。最后判断本次收到的任务是否执行完毕,若是,则汇总上述目录文件的位置信息。

分布式系统运行的性能有多个衡量的指标,常用的系统吞吐量用TPS(transactions per sec‑ond,每秒事务数)测量,其它度量指标还包括网络延迟、任务响应时间等。系统自身运行的消耗通常包括指令编译的时间、操作系统的启动时间、I/O 读取数据速率和程序运行时指令交互系统消耗,业务运行时还需要考虑服务的QoS、可靠性和系统可用性,以及系统安全运行的能力,这些指标都需要综合分析。

3.3 实验结果和分析

以10 万漫游话单处理进行对比,分布式计算采用双节点部署,每个节点5台服务器组成集群。对比现有整体程序单节点10台服务器处理,新架构因为采用分布式调度,直接读取内存库数据,利用内存分层进行漫游话单解码,10万条话单的处理效率从之前的5分钟缩短到了30秒。

4 结语

本文探索了利用云平台的分布式计算,解决运营商支撑系统处理批量漫游话单解码效率低的问题。本方法通过分层并行的处理模式,快速将漫游数据进行分层处理解码,各个处理单元并行处理其各自独立信息,优化加速整体处理流程和速度。实验表明:利用云计算快速部署、快速计算的特性,将话单全程存放在文件中,批量处理话单的效率从分钟级提升到秒级,提升了运营商对外服务的感知。

猜你喜欢
话单漫游解码
《解码万吨站》
河北大名话单元音韵母、单字调及双音节非轻声词连调的实验语音学初探
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
霹雳漫游堂
采用大数据技术的移动DPI关联算法探索及实现
NASA漫游记
GSM-R移动交换机ASN.1话单的解码
GPRS按时长计费模块的优化与应用