CN110716744B - 一种数据流处理方法、系统和计算机可读存储介质 - Google Patents

一种数据流处理方法、系统和计算机可读存储介质 Download PDF

Info

Publication number
CN110716744B
CN110716744B CN201911000833.7A CN201911000833A CN110716744B CN 110716744 B CN110716744 B CN 110716744B CN 201911000833 A CN201911000833 A CN 201911000833A CN 110716744 B CN110716744 B CN 110716744B
Authority
CN
China
Prior art keywords
service
data stream
stream processing
file
deployment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911000833.7A
Other languages
English (en)
Other versions
CN110716744A (zh
Inventor
韩昊
曹素芝
闫蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technology and Engineering Center for Space Utilization of CAS
Original Assignee
Technology and Engineering Center for Space Utilization of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technology and Engineering Center for Space Utilization of CAS filed Critical Technology and Engineering Center for Space Utilization of CAS
Priority to CN201911000833.7A priority Critical patent/CN110716744B/zh
Publication of CN110716744A publication Critical patent/CN110716744A/zh
Application granted granted Critical
Publication of CN110716744B publication Critical patent/CN110716744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据流处理方法、系统和计算机可读存储介质,所述方法包括:接收用户提交的逻辑拓扑文件和镜像文件,根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;通过所述微服务架构对数据流进行处理,并输出处理结果信息;从而实现微服务架构下轻量级的数据流处理部署,并突破了现有流处理框架部署复杂、占用资源的难题;本发明引入微服务的理念,移除现有框架的束缚,可将数据流需要进行的操作进行分解,各处理单元划分为一个微服务,各服务可以更加关注数据流的处理,资源利用率较高。

Description

一种数据流处理方法、系统和计算机可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据流处理方法、系统和计算机可读存储介质。
背景技术
随着互联网大数据的兴起,加速了大数据处理技术的发展。不同数据对处理技术有不同的要求。流处理系统可以用来处理火灾报警、燃气泄露报警等数据实时性要求比较高的系统。数据实时采集完整的数据为系统提供一个数据源,要求响应快、延迟低、系统可靠。实时计算部分不再采用原来的从数据库查询而是从采集来的数据进行计算,计算完成后迅速反馈给用户。流处理系统具有快速、高效、容错率高等特性能够将数据信息准确无误的进行处理。以下为现有常用的两种流处理框架:
Storm分布式实时计算框架在大数据流式处理的各种平台技术中以实时性好、高性能著称,兼备高可扩展性、稳定性和可靠性等特点受到业界的广泛关注使用。Storm作为流数据处理引擎,采用轮询算法进行任务调度,基于内存进行快速运算,很适用于实时流处理,而Hadoop用于批处理,缺少实时性。Storm保证每个消息都会得到处理,而且响应速度快,广泛应用于强实时的数据分析、在线机器学习、分布式RPC远程调用和信息日志流处理等技术领域。
Spark分布式计算框架是一个通用性极强,计算速度快,同时具备快速查询分析能力的大数据处理框架,设计核心是高速的内存计算。Spark可以将中间计算结果缓存在内存中,计算过程不需要重复读写磁盘外设,从而避免了大量的I/O操作。而Hadoop框架在计算过程中频繁地读写HDFS文件系统导致时延过高,实时性差且面对迭代型计算效率低下,只适用于离线批处理作业,无法满足快速数据查询和实时流处理,Spark作为新兴的分布式计算框架,非常适用于这些对实时性要求高的计算类型。
然而,上述两种流处理框架(即Spark、Storm)部署仍然相对复杂,在应用实例中,框架本身也会占用部分资源,并且现有的框架要求开发者按照特定的方式去开发逻辑部分,供框架调用,在框架设定好的计算模块上进行数据处理,任务无法直接面向数据而是通过框架进行数据处理。
发明内容
为了解决上述至少一个技术问题,本发明提出了一种数据流处理方法、系统和计算机可读存储介质。
为了实现上述目的,本发明第一方面提出了一种数据流处理方法,包括:
接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
通过所述微服务架构对数据流进行处理,并输出处理结果信息。
本方案中,所述数据流处理方法还包括:
将用户提交的镜像文件进行本地存储;
接收用户创建数据流处理指令;
从本地调取所述数据流处理指令对应的镜像文件;
根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署。
本方案中,所述数据流处理方法还包括:
接收删除数据流处理指令;
删除微服务架构中对应名称的服务。
本方案中,在根据所述部署配置文件进行服务自动部署之后,还包括:
提取微服务架构中各服务的相关信息,将服务部署信息和资源占用信息实时反馈给用户。
本方案中,所述逻辑拓扑文件包括:各服务节点的连接关系、各服务读取与发送数据的端口号。
本方案中,在根据所述部署配置文件进行服务自动部署之后,还包括:
通过在各服务间构建消息队列、使用共享高速数据库或通过边车转发方式实现各服务间的数据传输通道。
本方案中,所述数据流处理方法还包括:
通过容错机制来恢复数据流应用的状态。
本发明第二方面还提出一种数据流处理系统,所述数据流处理系统包括:存储器及处理器,所述存储器中包括数据流处理方法程序,所述数据流处理方法程序被所述处理器执行时实现如下步骤:
接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
通过所述微服务架构对数据流进行处理,并输出处理结果信息。
本方案中,所述数据流处理方法程序被所述处理器执行时还实现如下步骤:
将用户提交的镜像文件进行本地存储;
接收用户创建数据流处理指令;
从本地调取所述数据流处理指令对应的镜像文件;
根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署。
本发明第三方面还提出一种计算机可读存储介质,所述计算机可读存储介质中包括数据流处理方法程序,所述数据流处理方法程序被处理器执行时,实现如上述的一种数据流处理方法的步骤。
本发明通过接收用户提交的逻辑拓扑文件和镜像文件,然后根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;通过所述微服务架构对数据流进行处理,并输出处理结果信息,从而实现微服务架构下轻量级的数据流处理部署,并突破了现有流处理框架部署复杂、占用资源的难题。本发明引入微服务的理念,且流处理框架天然适合按处理流程进行拆解,移除现有框架的束缚,可将数据流需要进行的操作进行分解,各处理单元划分为一个微服务,各服务可以更加关注数据流的处理,资源利用率较高。另外,本发明通过容器云平台可实现各服务间的数据传输、负载均衡等任务,增强了数据流处理过程的稳定性。
本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1示出了本发明一种数据流处理方法的流程图;
图2示出了本发明数据流处理中的服务自动部署流程图;
图3示出了本发明一种数据流处理系统的框图;
图4示出了本发明一种流计算引擎的框图;
图5示出了本发明一种拓扑映射机制的框图;
图6示出了本发明一种消息队列实现数据传输的框图;
图7示出了本发明一种共享数据库实现数据传输的框图;
图8示出了本发明一种边车实现数据传输的框图;
图9示出了本发明一种流计算引擎平台实现服务部署的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
云计算己经成为当今信息技术领域中最重要的概念,它以独特的按需付费模式改变了整个IT行业。云计算代表着计算和数据资源日益迀移到互联网上去的一个趋势,提供了新的IT基础设施和平台服务,顺应了当前全球范围内整合计算资源和服务能力的需求,为高效、可扩展和易用的软件开发和使用提供了支持和保障。
Docker是一个基于Linux容器(LXC)技术的开源的容器引擎,为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker引擎的基础是LCX技术容器有效地将单个操作系统管理的资源划分为独立的组,以更好地平衡被隔离的组之间资源使用需求的冲突。容器与虚拟化相比,无需任何特殊的解释机制就可以将指令直接在CPU本地运行,避免了指令级模拟和即时编译,同时也不需要准虚拟化和复杂的系统调用替换。Docker容器的出现一定程度上解决了应用部署困难、可移植性的问题。
Kubernetes是在Borg系统的基础上开发出的容器编排工具,Kubernetes提供了在Paas云中支持基于容器的部署方法,专门针对基于集群的系统。Kubernetes允许跨物理机器部署多个“pod”,能够动态地改变工作负载,从而扩展应用程序。每个pod可以支持多个Docker容器,这些容器能够使用与之关联的服务(例如:文件系统和I/O)。Kubernetes可以使开发人员只需要关注应用开发的本身,而不用关注如何提高资源利用率等问题,这些问题都交由Kubernetes来处理。Kubernetes能够对跨主机的Docker容器进行管理,对容器提供了服务发现、弹性伸缩、负载均衡以及部署维护等重要功能。
微服务架构是一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制相互沟通。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其构建。
本发明的技术方案是建立在上述Docker、Kubernetes、微服务架构等技术架构的基础之上。
图1示出了本发明一种数据流处理方法的流程图。
如图1所示,本发明第一方面提出一种数据流处理方法,包括:
S102,接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
S104,根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
S106,调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
S108,通过所述微服务架构对数据流进行处理,并输出处理结果信息。
需要说明的是,本发明的技术方案可以在PC机、手机等终端设备上进行操作。
需要说明的是,所述逻辑拓扑文件与所述镜像文件相对应,其包括:各服务节点的连接关系、各服务读取与发送数据的端口号。优选的,所述逻辑拓扑文件为逻辑拓扑图。
在本实施例中,采用Docker容器来实现微服务架构,Docker容器所提供的轻量级、面向应用的虚拟化运行环境为微服务提供了理想的载体,每个容器承载一个服务,一台计算机同时运行多个容器,从而可以模拟出复杂的微服务架构。
可以理解,本发明通过移除现有框架的约束,将数据流需进行的操作进行分解,各处理单元划分为一个微服务,数据在各服务间的流向可提炼为服务间的逻辑拓扑图。单独的服务就像一个管道,数据流从端口流入,经过处理从另一端流出,送往下一个服务。各服务更关注于对数据的处理实现,而无需关心任务并行计算的调度,数据的传输等问题。另外,本发明还通过容器云平台负责实现各服务间的负载均衡、访问策略、自动扩缩容等功能。
图2示出了本发明数据流处理中的服务自动部署流程图。
如图2所示,所述数据流处理方法还包括:
S202,将用户提交的镜像文件进行本地存储;
S204,接收用户创建数据流处理指令;
S206,从本地调取所述数据流处理指令对应的镜像文件;
S208,根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署。
需要说明的是,由于天基信息网络与地面的通信时间较短,不能保证全天时连接至地面网络,且镜像文件的上传下载会占用大量的带宽资源,同时为了保证服务在需要时快速准确部署,在收到用户提交的镜像文件后,选择将镜像文件提交至云平台中的私有镜像仓库,进行本地保存。可以理解,所述镜像文件对应于所述逻辑拓扑文件。
需要说明的是,通过服务界面来接收用户创建对应的数据流处理服务指令,在创建服务时,可以从本地私有镜像仓库中拉取对应的镜像文件,并根据部署文件与逻辑拓扑图依次创建各服务,完成数据流处理服务流程的部署。
根据本发明的实施例,所述数据流处理方法还包括:
接收删除数据流处理指令;
删除微服务架构中对应名称的服务。
需要说明的是,通过服务界面来接收用户删除数据流处理指令,并通过集群删除对应名称的服务。
根据本发明的实施例,在根据所述部署配置文件进行服务自动部署之后,还包括:
提取微服务架构中各服务的相关信息,将服务部署信息和资源占用信息实时反馈给用户。
需要说明的是,通过服务界面将服务部署信息和资源占用信息实时反馈给用户,用户可以根据服务部署信息和资源占用信息来确定是否下达创建服务、删除服务等操作指令。
根据本发明的实施例,在根据所述部署配置文件进行服务自动部署之后,还包括:
通过在各服务间构建消息队列、使用共享高速数据库或通过边车转发方式实现各服务间的数据传输通道。
图3示出了本发明一种数据流处理系统的框图。
如图3所示,本发明第二方面还提出一种数据流处理系统3,所述数据流处理系统3包括:存储器31及处理器32,所述存储器31中包括数据流处理方法程序,所述数据流处理方法程序被所述处理器32执行时实现如下步骤:
接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
通过所述微服务架构对数据流进行处理,并输出处理结果信息。
需要说明的是,本发明的技术方案可以在PC机、手机等终端设备上进行操作。所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
需要说明的是,所述逻辑拓扑文件与所述镜像文件相对应,其包括:各服务节点的连接关系、各服务读取与发送数据的端口号;优选的,所述逻辑拓扑文件为逻辑拓扑图。
在本实施例中,采用Docker容器来实现微服务架构,Docker容器所提供的轻量级、面向应用的虚拟化运行环境为微服务提供了理想的载体,每个容器承载一个服务,一台计算机同时运行多个容器,从而可以模拟出复杂的微服务架构。
可以理解,本发明通过移除现有框架的约束,可将数据流需进行的操作进行分解,各处理单元划分为一个微服务,数据在各服务间的流向可提炼为服务间的逻辑拓扑图。单独的服务就像一个管道,数据流从端口流入,经过处理从另一端流出,送往下一个服务。各服务更关注于对数据的处理实现,而无需关心任务并行计算的调度,数据的传输等问题。另外,本发明还通过容器云平台负责实现各服务间的负载均衡、访问策略、自动扩缩容等功能。
根据本发明的实施例,所述数据流处理方法程序被所述处理器执行时还实现如下步骤:
将用户提交的镜像文件进行本地存储;
接收用户创建数据流处理指令;
从本地调取所述数据流处理指令对应的镜像文件;
根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署。
需要说明的是,由于天基信息网络与地面的通信时间较短,不能保证全天时连接至地面网络,且镜像文件的上传下载会占用大量的带宽资源,同时为了保证服务在需要时快速准确部署,在收到用户提交的镜像文件后,选择将镜像文件提交至云平台中的私有镜像仓库,进行本地保存。可以理解,所述镜像文件对应于所述逻辑拓扑文件。
需要说明的是,通过服务界面接收到用户创建对应的数据流处理服务指令,在创建服务时,可以从本地私有镜像仓库中拉取对应的镜像文件,并根据部署文件与逻辑拓扑图依次创建各服务,完成数据流处理服务流程的部署。
根据本发明的实施例,所述数据流处理方法程序被所述处理器执行时还实现如下步骤:
接收删除数据流处理指令;
删除微服务架构中对应名称的服务。
需要说明的是,通过服务界面接收到用户删除对应的数据流处理服务,并由集群删除对应名称的服务。
根据本发明的实施例,在根据所述部署配置文件进行服务自动部署之后,还包括:
提取微服务架构中各服务的相关信息,将服务部署信息和资源占用信息实时反馈给用户。
需要说明的是,通过服务界面将服务部署信息和资源占用信息实时反馈给用户,用户可以根据服务部署信息和资源占用信息来确定是否下达创建服务、删除服务等操作指令。
根据本发明的实施例,在根据所述部署配置文件进行服务自动部署之后,还包括:
通过在各服务间构建消息队列、使用共享高速数据库或通过边车转发方式实现各服务间的数据传输通道。
本发明第三方面还提出一种计算机可读存储介质,所述计算机可读存储介质中包括数据流处理方法程序,所述数据流处理方法程序被处理器执行时,实现如上述的数据流处理方法的步骤。
为了更好的解释本发明的技术方案,下面将通过一实施例进行详细说明。
针对现有数据流计算(处理)框架部署繁杂、占用系统计算资源较高的问题,本实施提出一种新的适用于容器云平台的流计算引擎框架(见图4),拟采用容器云平台中构建服务的方式,为用户实现微服务架构下轻量级的数据流计算部署。移除现有框架的约束,可将数据流需进行的操作进行分解,各处理单元划分为一个微服务,数据在各服务间的流向可提炼为服务间的逻辑拓扑图。单独的服务就像一个管道,数据流从端口流入,经过处理从另一端流出,送往下一个服务。各服务更关注于对数据的处理实现,而无需关心任务并行计算的调度,数据的传输等问题,并由容器云平台负责实现各服务间的负载均衡、访问策略、自动扩缩容等功能。
在本实施例中,流计算引擎包括服务端口、镜像存储模块、键值映射模块、自动部署模块、集群监控模块和集群端口,通过所述服务端口与用户进行通信,并通过所述集群端口与集群进行通信。
在本实施例中,选用服务界面作为流计算引擎暴露给用户的端口,用户可以根据数据流处理流程进行分解,以各任务环节为单元进行封装,形成逻辑拓扑图,向流计算引擎提交逻辑拓扑和镜像文件。同时,服务界面还可以通过集群监控模块采集的数据向用户反馈服务部署情况与资源占用情况。
镜像存储模块用于负责将用户所提交镜像文件进行存储。由于镜像文件的上传和下载均会占用大量的带宽资源,为了保证服务在需要时快速准确部署,流计算引擎收到用户提交的镜像文件后,选择将镜像文件提交至云平台中的私有镜像仓库,进行本地保存。
键值映射模块用于负责读取拓扑结构键值对应关系,并填充各服务配置文件中数据读取与传输的对应端口等环境参数。
自动部署模块可以根据用户在服务界面输入的命令,创建或删除对应流计算服务。创建服务时,从本地仓库中拉取对应镜像文件,根据键值映射模块生成的部署文件与网络拓扑依次创建各服务,完成流计算的部署。删除服务时,由集群删除对应名称的服务即可。
监控模块可提取集群中用户服务相关的信息。集群可实现各服务实例间的负载均衡,将数据流轮询的分发给各服务间的实例。在某一服务处理压力超过限定或低于限定时,集群可自动扩大或缩小实例规模,应对数据流突增的情况,提高集群资源利用率。监控模块可实时向用户反馈服务部署信息。
逻辑拓扑图到微服务的映射机制如图5所示,微服务自动部署需申明各服务名称、对应镜像文件、端口号、上下游服务等关键参数。映射机制拟采用键值对的方式读取拓扑关系,并将值填入部署文件模板中,用于集群部署服务时调用。流计算适用于对数据流进行一次性处理,而不适用于对数据流进行往复处理,故逻辑拓扑图应为有向无环图(DAG)。在构建服务的过程中,读取部署文件,限制各服务间的访问策略,形成完整的流数据处理流程。
拓扑是对数据处理流程逻辑的封装。拓扑逻辑图中服务的节点分为两类,一类是源节点,一类是工作节点。源节点是拓扑中数据流的来源,一般源节点会从一个外部的数据源读取数据流然后将他们发送到拓扑中,一个源节点可以发送多个数据流。工作节点负责数据处理等工作。一个拓扑由一个或者多个的源节点和工作节点组成。一个源节点可以同时发送数据到多个工作节点,而一个工作节点也可以接受多个源节点或多个工作节点,最终形成多个处理数据流。除各服务节点的连接关系外,拓扑中还应声明各服务读取与发送数据的端口号。通过读取键值对,改写创建服务时对应的拓扑结构文件,配置数据传输端口,声明各服务间的访问策略。
服务部署后,需要建立微服务间高效的消息传递机制。容器间的网络联通奠定了数据传输的基础,在此之上,可通过在各服务间构建消息队列、使用共享高速数据库或构建边车(sidecar)转发等方式实现各服务间的数据通道。在框架的配置下,向上屏蔽服务间数据传输与接收的过程,使得服务本身只关注于数据的处理。
优选的,容器间的数据传递可采用以下三种方式实现:
一、消息队列
容器间通过消息队列的方式实现数据传输如图6所示,以消息队列为中间件,各服务中分别加入消息队列的生产者与消费者,通过消息队列实现各服务间的数据传输。其中各服务中的消费者订阅其上一服务生产者所发布的消息,各服务的生产者将本服务数据流出端口的数据发往消息队列,供下游服务订阅,实现数据在服务间的流通。
为保证服务间数据传递速率,可考虑Kafka等类似的高吞吐分布式消息队列。Kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。有数据传输的两个服务间可通过同一个话题(Topic)进行数据的发布与订阅。同一话题(Topic)下的不同分区(Partition)也可以实现服务间的负载均衡。Kafka对消息进行磁盘存储,各服务间数据为顺序读取,在磁盘中顺序读写速度超过内存随机读写,故可保证消息分发的速率。
二、共享数据库
容器间通过共享数据库实现数据传输如图7所示,构建数据库服务,挂载在用户部署的各服务上,各服务共享该数据库,对该数据库可读可写,以数据库为媒介实现服务间的数据传输。其中两个相关的服务维护数据库中的一个列表,上游服务将数据写入列表的尾部,下游服务列表的头部读取数据并删除该数据,避免数据重复处理,实现数据在服务间的流通。
为保证服务间数据传递速率,可考虑Redis等类似的内存高速缓存数据库。Redis能读的速度是110000次/s,写的速度是81000次/s。高速的读写性能为服务间实时数据传输奠定基础,列表的形式为服务间的数据传输提供缓存,弹性适应数据流的变化。
三、边车(sidecar)
容器间通过边车(sidecar)实现数据传输如图8所示,针对每一个服务构建一个该服务容器对应的网络代理容器,与服务容器部署时一同部署,该网络代理容器称为边车(sidecar)。该容器会劫持对应服务的所有网络的流量,负责将上游服务边车中传送来的数据转发至本服务暴露的端口,并监听本服务数据流出端口。当收到数据时,转发至下一服务的边车中。在服务间构建以边车为节点的服务网络,实现数据在服务间的流通。
为保证服务间数据传递速率,可考虑Envoy或更加轻量级的边车实现方式。边车可随服务一同部署,且省去中间件的转发,可面向网络直接发送至下游服务。
在本实施例中,可以通过容错机制来恢复数据流应用的状态。可考虑Flink的快照来实现容错机制,提供exactly-once流式处理语义保证的核心问题就是确定当前流式计算的状态(包括正在处理的数据以及Operator状态),生成该状态的一致快照,并存储在持久存储中。如果可以经常执行状态保存的操作,则从故障恢复意味着仅从持久存储中恢复最新快照,将源头Source回退到快照生成时刻再次进行“播放”。
如图9所示,在kubernetes集群中部署流引擎平台,通过流引擎平台实现服务部署过程。具体的,用户提交拓扑结构和镜像文件到流计算引擎,流计算引擎将镜像文件存储在镜像仓库中,并根据拓扑结构生成部署文件,kubernetes集群根据部署文件进行服务自动部署以微服务架构的形式构建服务流程;数据流进入微服务架构进行处理,最后输出处理结果信息。
本发明通过接收用户提交的逻辑拓扑文件和镜像文件,然后根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;通过所述微服务架构对数据流进行处理,并输出处理结果信息,从而实现微服务架构下轻量级的数据流处理部署,并突破了现有流处理框架部署复杂、占用资源的难题。本发明引入微服务的理念,且流处理框架天然适合按处理流程进行拆解,移除现有框架的束缚,可将数据流需要进行的操作进行分解,各处理单元划分为一个微服务,各服务可以更加关注数据流的处理,资源利用率较高。另外,本发明通过容器云平台可实现各服务间的数据传输、负载均衡等任务,增强了数据流处理过程的稳定性。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种数据流处理方法,其特征在于,包括:
接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
通过所述微服务架构对数据流进行处理,并输出处理结果信息;
将用户提交的镜像文件进行本地存储;
接收用户创建数据流处理指令;
从本地调取所述数据流处理指令对应的镜像文件;
根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署;
通过服务界面接收用户创建对应的数据流处理服务指令;在创建服务时,从本地私有镜像仓库中拉取对应的镜像文件,并根据部署文件与逻辑拓扑图依次创建各服务,完成数据流处理服务流程的部署。
2.根据权利要求1所述的一种数据流处理方法,其特征在于,还包括:
接收删除数据流处理指令;
删除微服务架构中对应名称的服务。
3.根据权利要求1所述的一种数据流处理方法,其特征在于,在根据所述部署配置文件进行服务自动部署之后,还包括:
提取微服务架构中各服务的相关信息,将服务部署信息和资源占用信息实时反馈给用户。
4.根据权利要求1所述的一种数据流处理方法,其特征在于,所述逻辑拓扑文件包括:各服务节点的连接关系、各服务读取与发送数据的端口号。
5.根据权利要求1所述的一种数据流处理方法,其特征在于,在根据所述部署配置文件进行服务自动部署之后,还包括:
通过在各服务间构建消息队列、使用共享高速数据库或通过边车转发方式实现各服务间的数据传输通道。
6.根据权利要求1所述的一种数据流处理方法,其特征在于,还包括:
通过容错机制来恢复数据流应用的状态。
7.一种数据流处理系统,其特征在于,所述数据流处理系统包括:存储器及处理器,所述存储器中包括数据流处理方法程序,所述数据流处理方法程序被所述处理器执行时实现如下步骤:
接收用户提交的逻辑拓扑文件和镜像文件,并将所述镜像文件进行存储处理;
根据所述逻辑拓扑文件中的拓扑结构键值对应关系映射生成部署配置文件;
调用所述部署配置文件,并根据所述部署配置文件进行服务自动部署,以微服务架构的形式构建服务流程;
通过所述微服务架构对数据流进行处理,并输出处理结果信息;
所述数据流处理方法程序被所述处理器执行时还实现如下步骤:
将用户提交的镜像文件进行本地存储;
接收用户创建数据流处理指令;
从本地调取所述数据流处理指令对应的镜像文件;
根据所述镜像文件的拓扑结构键值对应关系进行服务自动部署;
通过服务界面接收用户创建对应的数据流处理服务指令;在创建服务时,从本地私有镜像仓库中拉取对应的镜像文件,并根据部署文件与逻辑拓扑图依次创建各服务,完成数据流处理服务流程的部署。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括数据流处理方法程序,所述数据流处理方法程序被处理器执行时,实现如权利要求1至6中任一项所述的一种数据流处理方法的步骤。
CN201911000833.7A 2019-10-21 2019-10-21 一种数据流处理方法、系统和计算机可读存储介质 Active CN110716744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911000833.7A CN110716744B (zh) 2019-10-21 2019-10-21 一种数据流处理方法、系统和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911000833.7A CN110716744B (zh) 2019-10-21 2019-10-21 一种数据流处理方法、系统和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110716744A CN110716744A (zh) 2020-01-21
CN110716744B true CN110716744B (zh) 2024-01-12

Family

ID=69212996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911000833.7A Active CN110716744B (zh) 2019-10-21 2019-10-21 一种数据流处理方法、系统和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110716744B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111428062A (zh) * 2020-03-25 2020-07-17 北京以萨技术股份有限公司 一种视图库系统的数据处理系统、方法、终端及介质
CN111597058B (zh) * 2020-04-17 2023-10-17 微梦创科网络科技(中国)有限公司 一种数据流处理方法及系统
CN111666342B (zh) * 2020-06-04 2023-08-18 重庆英楼维兴信息科技有限公司 一种基于微服务架构的数据采样方法及相关装置
CN111752759B (zh) * 2020-06-30 2022-07-08 重庆紫光华山智安科技有限公司 Kafka集群故障恢复方法、装置、设备及介质
CN111901157B (zh) * 2020-07-10 2023-01-10 苏州浪潮智能科技有限公司 一种基于k8s的服务部署方法、装置、设备、介质
CN111880899B (zh) * 2020-07-27 2022-08-16 山东迪特智联信息科技有限责任公司 一种基于云原生架构的大数据流处理方法和装置
CN112099803B (zh) * 2020-07-30 2024-04-12 浪潮通用软件有限公司 一种erp系统的增量部署方法及系统
CN112068898B (zh) * 2020-09-01 2024-04-19 上海熙菱信息技术有限公司 一种可配置插件式服务集成系统及方法
CN112906907B (zh) * 2021-03-24 2024-02-23 成都工业学院 一种机器学习管道模型分层化管理和分发的方法及系统
CN114025370B (zh) * 2021-11-04 2023-08-08 杭州朗和科技有限公司 数据报文传输方法、介质、系统和计算设备
CN114297172B (zh) * 2022-01-04 2022-07-12 北京乐讯科技有限公司 一种基于云原生的分布式文件系统
CN115665263A (zh) * 2022-10-19 2023-01-31 上海浦东发展银行股份有限公司 一种流量调拨方法、装置、服务器及存储介质
CN117112627B (zh) * 2023-09-05 2024-04-02 哈尔滨工业大学 一种基于计算时延模拟的流拓扑参数优化系统及优化方法
CN117354164B (zh) * 2023-12-05 2024-02-20 长沙先度科技有限公司 一种以太网络拓扑结构的自动生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106610836A (zh) * 2016-12-23 2017-05-03 国网信息通信产业集团有限公司 一种微服务运行管理工具
CN107678852A (zh) * 2017-10-26 2018-02-09 携程旅游网络技术(上海)有限公司 基于流数据实时计算的方法、系统、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108411B2 (en) * 2015-10-08 2018-10-23 Lightbend, Inc. Systems and methods of constructing a network topology
WO2019084465A1 (en) * 2017-10-27 2019-05-02 Streamsimple, Inc. CONTINUOUS DIFFUSION MICRO-SERVICES FOR FLOW PROCESSING APPLICATIONS
US10635689B2 (en) * 2017-11-01 2020-04-28 Hitachi, Ltd. System and method of orchestration with data integration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106610836A (zh) * 2016-12-23 2017-05-03 国网信息通信产业集团有限公司 一种微服务运行管理工具
CN107678852A (zh) * 2017-10-26 2018-02-09 携程旅游网络技术(上海)有限公司 基于流数据实时计算的方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN110716744A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN110716744B (zh) 一种数据流处理方法、系统和计算机可读存储介质
CN109828831B (zh) 一种人工智能云平台
CN111506412B (zh) 基于Airflow的分布式异步任务构建、调度系统及方法
US11755452B2 (en) Log data collection method based on log data generated by container in application container environment, log data collection device, storage medium, and log data collection system
US11625281B2 (en) Serverless platform request routing
CN110908658B (zh) 一种“微服务+微应用”系统、数据处理方法及装置
CN111090699A (zh) 业务数据的同步方法和装置、存储介质、电子装置
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN105653425A (zh) 基于复杂事件处理引擎的监控系统
CN114741060B (zh) 基于中台的业务系统开发方法及装置
CN113778615B (zh) 一种快速稳定的网络靶场虚拟机构建系统
CN115280325A (zh) 联邦学习中的参数共享
CN114429210A (zh) 基于云原生的强化学习流水线方法、系统、设备及存储介质
CN111427665A (zh) 一种量子应用云平台及量子计算任务的处理方法
CN112261125A (zh) 集中单元的云化部署方法、装置及系统
CN116755799A (zh) 一种服务编排系统和方法
CN111190731A (zh) 基于权重的集群任务调度系统
CN113472638B (zh) 边缘网关控制方法及系统、装置、电子设备、存储介质
CN114969199A (zh) 遥感数据的处理方法、装置、系统以及存储介质
Tisbeni et al. A Big Data Platform for heterogeneous data collection and analysis in large-scale data centres
Blok et al. The System of the Supervision and the Visualization of Multimedia Data for BG
Pham et al. Multi-level just-enough elasticity for MQTT brokers of Internet of Things applications
Posey et al. Infrastructure for transportation cyber-physical systems
Tanfener Design and evaluation of a microservice testing tool for edge computing environments
Huang et al. DDS-Based Information Interaction System for Ship Cloud Storage Data Center

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant