CN110198266B - 实时数据流处理方法及系统 - Google Patents
实时数据流处理方法及系统 Download PDFInfo
- Publication number
- CN110198266B CN110198266B CN201810857084.9A CN201810857084A CN110198266B CN 110198266 B CN110198266 B CN 110198266B CN 201810857084 A CN201810857084 A CN 201810857084A CN 110198266 B CN110198266 B CN 110198266B
- Authority
- CN
- China
- Prior art keywords
- virtual
- address
- actual
- port
- resource
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种实时数据流处理方法,包括:接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的用于提供所述资源服务的实际IP地址和第一实际端口;将所述资源管理请求发送至所述实际IP地址和第一实际端口以根据所述资源管理请求对所述资源进行管理。本申请还公开相应的系统。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种实时数据流处理方法及系统。
背景技术
Kafka是一个可以实现实时处理大量数据的消息系统,被广泛用于信息收集,记录,存取等场景,例如:社交网络、大型零售商、汽车公司、银行等的实时应用和数据流当中。
Kafka涉及有Zookeeper集群和一个或多个服务器(broker),其中,Zookeeper是一个为分布式应用提供一致性服务的软件,集群存储了Kafka核心原数据,如主题(topic)信息配置、broker信息、消费分组等等,充当了Kafka的配置管理中心。broker负责消息的存储与转发,作为代理对外提供生产和消费服务。topic为消息主题,是逻辑上的概念,特指Kafka处理的消息源的不同分类,用户可以根据自己的业务形态将不同业务类别的消息分别存储到不同topic。Kafka还涉及有消息的生产者(producer)和消费者(consumer),生产流程为producer首先与Zookeeper集群通信,获取目前Kafka中的Broker信息,然后将对应的消息投递(push)到Broker中。消费流程为Consumer首先与Zookeeper通信,获取Kafka中的Broker信息,然后从对应的Broker中拉取(pull)消息。
发明内容
本申请实例提供了一种实时数据流处理方法,包括:接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的用于提供所述资源服务的实际IP地址和第一实际端口;将所述资源管理请求发送至所述实际IP地址和第一实际端口,以根据所述管理请求对所述资源进行管理。
本申请实例还提供了一种实时数据流处理系统,包括异步流程处理模块、网络管理模块、元数据管理模块:所述异步流程处理模块,接收终端设备的资源申请请求;其中,所述资源申请请求中携带资源的参数;根据所述资源申请请求返回所述资源的资源标识,并向所述网络管理模块发送虚拟地址获取请求,所述虚拟地址获取请求携带所述参数,所述虚拟地址包括第一虚拟IP地址和第一虚拟端口;所述网络管理模块,根据所述参数为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口,并将所述第一虚拟IP地址和所述第一虚拟端口发送给所述异步流程处理模块;所述异步流程处理模块,进一步向所述元数据管理模块发送实际地址获取请求,所述实际地址获取请求携带参数、第一虚拟IP地址、第一虚拟端口、资源标识,所述实际地址包括实际IP地址和第一实际端口,所述实际地址用于提供资源服务;所述元数据管理模块,根据所述参数分配与所述虚拟地址对应的实际地址,并将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系发送至所述异步流程处理模块;所述异步流程处理模块,进一步向所述网络管理模块发送对应关系添加请求,所述对应关系添加请求携带所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系;所述网络管理模块,进一步将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至所述路由表中;所述网络管理模块,进一步接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的所述实际IP地址和第一实际端口;将所述资源管理请求发送至所述实际IP地址和第一实际端口,以根据所述资源管理请求对所述资源进行管理。
上述技术方案中,通过所述第一虚拟IP地址和第一虚拟端口以及路由表可以确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口,从而将所述资源管理请求发送至所述实际IP地址和所述第一实际端口中,实现了通过所述第一虚拟IP地址和所述第一虚拟端口隐藏所述实际IP地址和所述第一实际端口,提供了一种安全、可靠、性能更佳的实时数据流处理系统。
附图说明
为了更清楚地说明本申请实例中的技术方案,下面将对实例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请一些实例涉及的一种系统构架示意图;
图1B是本申请一些实例涉及的一种系统构架示意图;
图2是本申请一些实例提供的实时数据流处理方法的流程图;
图3A、3B和3C是本申请另一些实例提供的实时数据流处理方法的流程图;
图4是本申请一些实例涉及的用户界面示意图;
图5是本申请一些实例涉及的用户界面示意图;
图6是本申请一些实例涉及的用户界面示意图;
图7是本申请一些实例涉及的用户界面示意图;
图8为本申请一些实例提供的实时数据流处理方法的消息交互图;
图9为本申请一些实例提供的实时数据流处理方法的消息交互图;
图10是本申请一些实例提供的装置结构示意图;及
图11是本申请一些实例提供的设备结构示意图。
具体实施方式
下面将结合本申请实例中的附图,对本申请实例中的技术方案进行清楚、完整地描述,显然,所描述的实例仅是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
本申请提出一种实时数据流处理方法,该方法应用于图1A和图1B所示的系统构架中。如图1A所示,该系统构架包括:终端设备101(例如,终端设备101a-c)、终端设备101上执行的应用客户端102(例如,应用客户端102a-c)、云平台103及消息队列105,这些实体通过一个或多个网络107进行交互。其中,云平台103包括数据库104,数据库104中存储有路由表。消息队列105包括服务器106,消息队列105例如可以为Kafka平台,此时服务器106可以为broker,其中,服务器106用于管理应用客户端102生产和消费的数据。终端设备101可以通过应用客户端102使用消息队列105,如申请资源、创建/删除主题(topic)等。
终端设备101的示例包括但不限于掌上型计算机、可穿戴计算设备、个人数字助理(PDA)、平板计算机、笔记本电脑、台式计算机、移动电话、智能手机、增强型通用分组无线业务(EGPRS)移动电话、媒体播放器、导航设备、游戏控制台、电视机、或任意两个或更多的这些数据处理设备或其他数据处理设备的组合。
一个或多个网络107的示例包括局域网(LAN)和广域网(WAN)诸如互联网。可选地,可以使用任意公知的网络协议来实现一个或多个网络107,包括各种有线或无线协议,诸如,以太网、通用串行总线(USB)、FIREWIRE、全球移动通讯系统(GSM)、增强数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、WiFi、IP语音(VoIP),Wi-MAX,或任意其他适合的通信协议。
服务器106可以在一个或多个独立的数据处理装置或分布式计算机网络上实现。在一些实施例中,服务器106也可以使用各种虚拟设备和/或第三方服务提供商(例如,第三方云服务提供商)的服务,以提供broker106的底层的计算资源和/或基础资源。
在一些实例中,云平台103接收终端设备101的资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的消息队列105中用于提供所述资源服务的实际IP地址和第一实际端口;根据所述实际IP地址和第一实际端口将所述资源管理请求发送至消息队列105,以使消息队列105根据所述资源管理请求对所述资源进行管理。
在一些实例中,所述系统构架还可以如图1B所示,该系统架构包括:终端设备101(例如,终端设备101a-c)、终端设备101上执行的第一应用客户端102(例如,第一应用客户端102a-c)和第二应用客户端108(例如,应用客户端108a-c)、云平台103及消息队列105,这些实体通过一个或多个网络107进行交互。
其中,第一应用客户端102为对应于云平台103的应用客户端,第二应用客户端108为对应于消息队列105的应用客户端,通过第一应用客户端102可以对消息队列105中的资源进行管理,通过第二应用客户端108可以进行数据的生产和消费。云平台103包括数据库104、云网关109异步流程处理模块110、网络管理模块111、元数据管理模块112及消息统计及控制模块113,数据库104中存储有路由表。元数据管理模块112对消息队列105进行封装,以实现用户通过第一应用客户端102管理消息队列105。消息统计及控制模块113可以实现对数据进行监控。消息队列105包括服务器106和Zookeeper集群114,服务器106用于对第二应用客户端108生产和消费的数据进行管理,Zookeeper集群114用于管理服务器106。
在一些实例中,第一应用客户端102向异步流程处理模块110发送资源申请请求,其中,所述资源申请请求中携带所述资源的参数;异步流程处理模块110根据所述资源申请请求返回所述资源的资源标识,并向网络管理模块111发送虚拟地址获取请求,所述虚拟地址获取请求携带所述参数。网络管理模块111根据所述参数为所述资源分配第一虚拟IP地址和第一虚拟端口,这里,可以默认虚拟IP地址和虚拟端口组成的虚拟地址为4个,在一些实例中,所述资源申请请求中还可以携带所述虚拟地址的个数需求,网络管理模块111根据所述个数需求为所述资源分配相应个数的虚拟地址。网络管理模块111将所述第一虚拟IP地址和第一虚拟端口发送给异步流程处理模块110。
异步流程处理模块110向元数据管理模块112发送实际地址获取请求,所述实际地址获取请求携带参数、第一虚拟IP地址、第一虚拟端口、资源标识,元数据管理模块112根据所述参数,配置与所述虚拟地址对应数量的实际IP地址和第一实际端口,并将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系发送至异步流程处理模块110,异步流程处理模块110将所述对应关系写入数据库104。元数据管理模块112还将所述对应关系发送至Zookeeper集群105和存储集群中相应的服务器106。
异步流程处理模块110向网络管理模块111发送对应关系添加请求,所述对应关系添加请求携带所述对应关系,网络管理模块111将所述对应关系添加至路由表中。
第二应用客户端108向网络管理模块111发送资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;网络管理模块111接收所述资源管理请求,根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的消息队列105中用于提供资源服务的实际IP地址和第一实际端口;及根据所述实际IP地址和第一实际端口将所述资源管理请求发送至消息队列105中,消息队列105根据所述资源管理请求对所述资源进行管理。
在一些实例中,本申请提出的实时数据流处理方法可应用于云平台,如图2所示,该方法包括以下步骤:
步骤201:接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口。
在一些实例中,在接收资源管理请求之前,所述方法进一步包括:接收资源申请请求;其中,所述资源申请请求中携带所述资源的参数;根据所述参数为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口;根据所述参数确定所述实际IP地址和所述第一实际端口;将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至所述路由表中;根据所述参数和所述实际IP地址、所述第一实际端口分配所述资源及资源标识。
在一些实例中,所述方法进一步包括:根据所述参数为所述资源分配与所述第一虚拟IP地址对应的多个第二虚拟端口,其中,所述根据所述参数确定所述实际IP地址和所述第一实际端口包括:针对每个第二虚拟端口,根据所述参数确定一个实际IP地址和一个第一实际端口;其中,所述将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至所述路由表中包括:将所述第一虚拟端口和多个第二虚拟端口之间的对应关系添加到所述路由表中;将所述第一虚拟IP地址、每个第二虚拟端口、与每个第二虚拟端口对应的实际IP地址和第一实际端口之间的对应关系添加至所述路由表中。
在一些实例中,所述资源申请请求中还携带第一网络类型,所述根据所述参数为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口,包括:根据所述参数、第一网络类型为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口;所述根据所述参数确定所述实际IP地址和所述第一实际端口,包括:根据所述参数、第一网络类型确定所述实际IP地址和第一实际端口;所述将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至所述路由表中包括:将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口、所述第一网络类型之间的对应关系添加至所述路由表中。
在一些实例中,所述方法进一步包括:接收路由添加请求,所述路由添加请求携带第二网络类型及资源标识;根据所述资源标识确定所述资源的参数;根据所述参数和第二网络类型为所述资源分配第二虚拟IP地址和第三虚拟端口;根据所述参数和所述第二网络类型确定所述实际IP地址对应的第二实际端口;将所述第二虚拟IP地址、第三虚拟端口和所述实际IP地址、第二实际端口、所述第二网络类型之间的对应关系添加至所述路由表中。
在一些实例中,所述方法进一步包括:监控所述资源标识对应的资源的状态;当确定所述资源对应的有效期限到达时,释放所述资源;删除所述路由表中所述对应关系。
在一些实例中,所述资源管理请求还携带用户标识,在根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和所述第一虚拟端口对应的用于提供所述资源服务的实际IP地址和第一实际端口之前,包括:根据所述用户标识对所述资源管理请求进行鉴权,当鉴权通过时,根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的用于提供所述资源服务的实际IP地址和第一实际端口。
步骤202:根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的用于提供资源服务的实际IP地址和第一实际端口。
在一些实例中,所述根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的用于提供所述资源服务的实际IP地址和第一实际端口,包括:根据所述第一虚拟端口和所述多个第二虚拟端口之间的对应关系,确定所述第一虚拟端口对应的多个第二虚拟端口;根据所述多个第二虚拟端口,分别查询路由表,得到每个第二虚拟端口对应的所述实际IP地址和所述第一实际端口。
步骤203:将所述资源管理请求发送至所述实际IP地址和第一实际端口,以根据所述资源管理请求对所述资源进行管理。
在一些实例中,所述资源管理请求为写数据请求,所述写数据请求中进一步包括待写入的数据,所述将所述资源管理请求发送至所述实际IP地址和所述第一实际端口包括:将所述待写入的数据发送至所述实际IP地址和所述第一实际端口以将所述数据与所述资源标识对应存储。
在一些实例中,所述资源管理请求为读数据请求,所述将所述资源管理请求发送至所述实际IP地址和所述第一实际端口,包括:将所述读数据请求发送至所述实际IP地址和所述第一实际端口,以从所述资源中读取数据。
上述技术方案中,通过所述第一虚拟IP地址和第一虚拟端口以及路由表可以确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口,从而将资源管理请求发送至用于提供所述资源服务的实际IP地址和第一实际端口中,实现了通过所述第一虚拟IP地址和所述第一虚拟端口隐藏所述实际IP地址和所述第一实际端口,提供了一种安全、可靠、性能更佳的实时数据流处理系统。
图3A、3B和3C示出了本申请一些实例涉及的实时数据流处理方法的另一流程图。如图所示,该过程包括如下步骤:
步骤301:接收资源申请请求;其中,所述资源申请请求中携带待管理的资源的参数。
这里,终端设备101可以通过第一应用客户端102向云平台103发送所述资源申请请求,第一应用客户端102的用户交互界面可以如图4所示,用户可以根据自身的业务量选择相应磁盘容量和峰值带宽的Kafka资源,如图4中401所示的多个不同大小的磁盘容量以及如402所示的多个不同大小的峰值带宽。在该界面中还可以选择计费模式、使用的地域、该地域中的可用区等,如403所示。这里,终端设备101可以通过第一应用客户端102对消息队列105进行管理,当消息队列105为Kafka平台时,这里的管理可以为申请资源、创建/删除topic、添加/删除路由等。
在一些实例中,云平台103根据所述资源申请请求为所述资源分配对应的资源标识,其中,所述资源标识可以为资源ID,并将所述资源ID发送至第一应用客户端102,则第一应用客户端102将显示如图5所示的用户界面。在该界面中,图4显示的用户界面的信息将在如图5所示的用户界面中显示为一条目信息,如501所示。
步骤302:根据所述参数为所述资源分配第一虚拟IP地址和第一虚拟端口。
这里,所述参数可以为如图4所示的界面图中显示的信息,如峰值带宽、磁盘容量等。
在一些实例中,所述第一虚拟IP地址和所述第一虚拟端口可以为一个或多个,云平台可以根据所述参数确定所述第一虚拟IP地址和所述第一虚拟端口的个数。在一些实例中,可以默认所述第一虚拟IP地址和所述第一虚拟端口组成的虚拟地址的个数为4个,例如:10.8.0.8:9092,10.8.0.8:9093,10.8.0.8:9094,10.8.0.8:9095。
步骤303:根据所述参数确定用于提供资源服务的实际IP地址和第一实际端口。
在一些实例中,所述实际IP地址、所述第一实际端口组成的实际地址的个数可以与所述虚拟地址的个数对应。
步骤304:将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至路由表中。
这里,当所述实际地址的个数与所述虚拟地址的个数对应时,所述对应关系为一一映射。
步骤305:根据所述参数和所述实际IP地址、所述第一实际端口分配资源及资源标识。
例如,云平台根据所述参数在所述实际IP地址、所述第一实际端口对应的服务器中分配资源,如40MB/s的峰值带宽和300GB的磁盘容量。
通过以上步骤,即初步完成了实时数据流处理系统的创建,各用户,包括云平台中的各用户如VPC用户,基础网络用户等,均可以通过终端设备101使用所述实时数据流处理系统。
上述是为终端设备101分配一个或多个第一虚拟IP地址和第一虚拟端口的情形,在一些实例中,还可以进一步为终端设备101分配与所述第一虚拟IP地址对应的多个第二虚拟端口,以及通过所述第一虚拟IP地址和所述第一虚拟端口对所述第一虚拟IP地址和所述多个第二虚拟端口进行封装,并仅将所述第一虚拟IP地址和所述第一虚拟端口发送给终端设备101,使得所述多个第二虚拟端口对终端设备101不可见。此时,所述方法进一步包括步骤306,及步骤303还包括步骤307,步骤304还包括步骤308和步骤309。
步骤306:根据所述参数为所述资源分配与所述第一虚拟IP地址对应的多个第二虚拟端口。
例如,所述第一虚拟地址和第一虚拟端口为10.8.0.8:9092,第一虚拟IP地址和多个第二虚拟端口分别为10.8.0.8:9093,10.8.0.8:9094,10.8.0.8:9095。
这里,为了节省成本,仅为所述资源分配一个虚拟IP地址及多个虚拟端口,当然还可以为所述资源分配多个虚拟IP地址:虚拟端口,本申请对此不限定。
步骤307:针对每个第二虚拟端口,根据所述参数确定一个实际IP地址和一个第一实际端口。
这里,所述第一虚拟IP地址也可以为一个或多个,为了使用方便,可以仅为一个,终端设备101可以仅通过输入这一个第一虚拟IP地址,不需要输入多个第一虚拟IP地址,即可进行数据读写,提高读写效率。
其中,针对每个第一虚拟IP地址和第二虚拟端口,根据所述参数确定一个实际IP地址和一个第一实际端口,例如,针对10.8.0.8:9093,确定的实际IP地址和第一实际端口为10.148.174.163:13039,针对10.8.0.8:9094,确定的实际IP地址和第一实际端口为10.59.162.158:13044,针对10.8.0.8:9095,确定的实际IP地址和第一实际端口为10.148.198.71:13032。
步骤308:将所述第一虚拟端口和多个第二虚拟端口之间的对应关系添加到所述路由表中。
例如,所述第一虚拟端口和多个第二虚拟端口之间的对应关系为“10.8.0.8:9092”:[“10.8.0.8:9093”,“10.8.0.8:9094”,“10.8.0.8:9095”]。
步骤309:将所述第一虚拟IP地址、每个第二虚拟端口、与每个第二虚拟端口对应的实际IP地址和第一实际端口之间的对应关系添加至所述路由表中。
例如,第一虚拟IP地址:第二端口与实际IP地址:第一实际端口的对应关系为“10.8.0.8:9093”:[“10.148.174.163:13039”],
“10.8.0.8:9094”:[“10.59.162.158:13044”],“10.8.0.8:9095”:[“10.148.198.71:13032”]。
其中,当所述资源申请请求中还携带第一网络类型时,步骤302包括步骤310、步骤303包括步骤311、步骤303包括步骤312。
其中,所述第一网络类型可以是在终端设备向云平台发送资源申请请求时发送的,所述第一网络类型例如可以是在图4所示的界面中选择的,如404所示,可以选择基础网络或私有网络(Virtual Private Cloud,VPC),当选择私有网络时,还可以进一步选择私有网络中的子网或者在该私有网络中创建子网,以提高使用安全。例如,用户在如图4所示的界面选择了私有网络,并选择了该私有网络下的一子网,则云平台103向终端设备101返回所述私有网络的标识,即VPCID,及子网的标识,即subnetID。
步骤310:根据所述参数、第一网络类型为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口。
这里,当所述资源申请请求中还携带第一网络类型时,云平台在所述第一网络类型中为所述资源分配第一虚拟IP地址和所述第一虚拟端口。
例如,所述第一网络类型为私有网络,该私有网络下的第一虚拟IP地址和第一虚拟端口可以为10.8.0.8:9092,10.8.0.8:9093,10.8.0.8:9094,10.8.0.8:9095。
步骤311:根据所述参数、第一网络类型确定所述实际IP地址和第一实际端口。
这里,云平台在所述第一网络类型中为所述资源分配所述实际IP地址和第一实际端口。
例如,私有网络下的实际IP地址和第一实际端口为10.148.174.163:13039,10.59.162.158:13044,10.148.198.71:13032。
步骤312:将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口、所述第一网络类型之间的对应关系添加至所述路由表中。
例如,可以将“10.8.0.8:9093”:[“10.148.174.163:13039”],
“10.8.0.8:9094”:[“10.59.162.158:13044”],“10.8.0.8:9095”:[“10.148.198.71:13032”]与私有网络均被添加至路由表中,用户可以通过私有网络访问所述实际IP地址和所述第一实际端口中的资源。
步骤313:接收路由添加请求,所述路由添加请求携带第二网络类型及资源标识。
这里,针对一资源,可以在路由表中添加多个网络下的多个对应关系。例如,针对上述资源,已在路由表中添加了私有网络下的对应关系,云平台还可以响应路由添加请求,将其他多个网络类型,如基础网络,下的对应关系添加至所述路由表中,以实现用户通过多种网络环境访问所述资源。
例如,在如图5所示的用户界面中,显示所述资源的资源ID,如502所示,点击所述实例ID后,将显示如图6所示的界面,在该界面中显示所述资源的配置信息,如601所示,所述配置信息即为图4所示的界面中配置的各项信息。在图6中,还显示有控件602所示的“添加路由策略”,操作控件602后,将弹出窗口603,在窗口603中可以选择一个网络类型,点击如604所示的“提交”后,即可启动在路由表中添加对应关系的流程,即步骤314-步骤317,反复执行步骤313-步骤317时,可以创建多个网络类型下的多个对应关系,并将所述多个对应关系及网络类型均添加至所述路由表中,从而实现多种网络环境均能访问所述资源。
步骤314:根据所述资源标识确定所述资源的参数。
这里,因为在步骤301-步骤312中已针对所述资源创建了第一网络类型下的对应关系,且云平台已为所述资源分配资源及资源标识,因此,所述路由添加请求仅需携带资源标识,云平台根据所述资源标识即可查询到所述资源的参数,如峰值带宽、磁盘容量等。
步骤315:根据所述参数和第二网络类型为所述资源分配第二虚拟IP地址和第三虚拟端口。
这里,云平台可以根据所述参数在第二网络类型为所述资源分配一个或多个第二虚拟IP地址和第三虚拟端口。
这里,在第一网络类型和第二网络类型下,云平台为所述资源分配不同的虚拟IP地址和虚拟端口,例如,所述第二网络类型为基础网络,所述第二虚拟IP地址和第三虚拟端口为10.66.225.83:8082。
步骤316:根据所述参数和所述第二网络类型确定所述实际IP地址对应的第二实际端口。
这里,在第一网络类型和第二网络类型下,所述资源在服务器中的实际IP地址相同,端口不同。
例如,所述实际IP地址和第二实际端口为10.148.174.163:13037。
在一些实例中,所述消息队列中服务器的实际地址(即实际IP地址:第二实际端口)的个数可以与所述虚拟地址(即第二虚拟IP地址:第三虚拟端口)的个数相同,便于云平台根据所述虚拟地址、及所述实际地址建立一一对应关系,从而根据所述第一虚拟IP地址和第一虚拟端口查询路由表,可以准确快速确定用于提供所述资源的实际地址(实际IP地址:第一实际端口或实际IP地址:第二实际端口),从而提高所述实时数据流处理系统的运行性能。
步骤317:将所述第二虚拟IP地址、第三虚拟端口和所述实际IP地址、第二实际端口、所述第二网络类型之间的对应关系添加至所述路由表中。
例如,可以将“10.66.225.83:8082”:[“10.148.174.163:13037”],“基础网络”均添加至路由表中。
这里即完成了在第二网络类型中创建所述第二虚拟IP地址、第三虚拟端口和所述实际IP地址、所述第二实际端口之间的对应关系,终端设备101可以通过该第二网络类型下的该对应关系访问所述资源。
跟步骤306-步骤309对应,云平台也可以在第二网络类型中为所述资源分配对应于所述第二虚拟IP地址对应的多个第四虚拟端口,通过所述第二虚拟IP地址:第三虚拟端口对所述多个第二虚拟IP地址:第四虚拟端口进行封装,并仅将所述第二虚拟IP地址:第三虚拟端口发送给终端设备101,使得所述多个第二虚拟IP地址:第四虚拟端口对终端设备101不可见。此处不赘述。
步骤318:接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口。
这里,所述第一虚拟IP地址和第一虚拟端口可以为一个或多个,云平台可以根据所述参数确定所述第一虚拟IP地址和第一虚拟端口的个数。
这里,终端设备在发送所述资源管理请求时,可以查询所述资源的状态,这里,所述资源的状态包括运行中、删除中、创建中等,当确定所述资源处于运行中时,查询该所述资源的第一虚拟IP地址和第一虚拟端口,所述第一虚拟IP地址和第一虚拟端口可以如图6中的“内网IP和端口”所示。
步骤319:所述资源管理请求还携带用户标识,根据所述用户标识对所述资源管理请求进行鉴权。
这里,所述根据所述用户标识对所述资源管理请求进行鉴权,可以是:云平台接收所述资源管理请求,所述资源管理请求还携带所述用户标识,云平台根据所述用户标识查询数据库,当所述资源管理请求中携带的用户标识与在数据库中查询到的用户标识相同,则鉴权通过。
在一些实例中,上述鉴权可以通过通用路由封装协议(Generic RoutingEncapsulation,GRE)对各终端设备进行网络隔离实现,以保证相同用户标识的终端设备才能访问所述资源中的数据,从而进一步提高所述实时数据流处理系统的安全性能。
步骤320:当鉴权通过时,根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口。
这里,所述路由表记录有所述第一虚拟IP地址、第一虚拟端口与所述实际IP地址、所述第一实际端口之间的对应关系,根据所述第一虚拟IP地址和第一虚拟端口查询所述路由表,即可确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口。
这里,通过所述第一虚拟IP地址和第一虚拟端口以隐藏所述实际IP地址和所述第一实际端口,实现了所述实际IP地址和所述第一实际端口对用户透明,当消息队列105为Kafka平台时,用户使用原生Kafka平台,则需直接对Zookeeper节点(即所述实际IP地址和所述第一实际端口对应的服务器)直接操作,而使用本申请一些实例提供的实时数据流处理系统,所述实例IP地址和所述第一实际端口对用户透明,避免了当前用户的操作对其他用户造成干扰。
在一些实例中,步骤320包括步骤321和步骤322:
步骤321:根据所述第一虚拟端口和所述多个第二虚拟端口之间的对应关系,确定所述第一虚拟端口对应的多个第二虚拟端口。
步骤322:根据所述多个第二虚拟端口,分别查询路由表,得到每个虚拟第二端口对应的实际IP地址和第一实际端口。
这里,当云平台为所述资源分配一个所述第一虚拟IP地址、第一虚拟端口和多个第二虚拟端口(此时,所述资源申请请求携带第一网络类型,当所述资源申请请求携带第二网络类型时,这里为第三虚拟IP地址和多个第四虚拟端口)时,云平台可以根据所述第一虚拟端口和多个第二虚拟端口之间的对应关系,确定所述第一端口对应的多个第二虚拟端口,之后,分别查询路由表,根据所述多个第二虚拟端口与实际IP地址和第一实际端口之间的对应关系,确定所述实际IP地址和第一实际端口。
步骤323:将所述资源管理请求发送至所述实际IP地址和第一实际端口以根据所述资源管理请求对所述资源进行管理。
在一些实例中,步骤323包括步骤324和步骤325:
步骤324:所述资源管理请求为写数据请求,所述写数据请求中进一步包括待写入的数据,将所述待写入的数据发送至所述实际IP地址和所述第一实际端口以将所述数据与所述资源标识对应存储。
在一些实例中,当云平台为所述资源分配了第一虚拟IP地址、第一虚拟端口和多个第二虚拟端口,且所述资源申请请求携带第一网络类型时,接收针对所述资源的写数据请求,所述写数据请求携带所述第一虚拟IP地址、所述第一虚拟端口和待写入的数据,云平台可以根据所述第一虚拟端口和多个第二虚拟端口之间的对应关系,确定所述第一虚拟端口对应的多个第二虚拟端口,之后,根据所述多个第二虚拟端口,分别查询路由表,得到每个第二虚拟端口对应的实际IP地址和第一实际端口;继而,根据所述实际IP地址和所述第一实际端口将所述待写入数据发送至消息队列105,以使消息队列105将所述数据与所述资源标识对应存储。
在一些实例中,各资源在服务器中存储的IP地址和端口不同,从而实现各个资源的隔离,保证了各资源中数据的安全可靠。
在一些实例中,当所述第一虚拟IP地址和第一虚拟端口为一个或多个时,云平台103接收所述写数据请求,所述写数据请求携带所述第一虚拟IP地址、所述第一虚拟端口及待写入的数据,云平台可以根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口,根据所述实际IP地址和所述第一实际端口将所述待写入的数据发送至消息队列105,以使消息队列105将所述数据与所述资源标识对应存储。
步骤325:所述资源管理请求为读数据请求,将所述读数据请求发送至所述实际IP地址和所述第一实际端口,以从所述资源读取数据。
在一些实例中,当云平台为所述资源分配了一个第一虚拟IP地址、第一虚拟端口和多个第二虚拟端口,且所述资源申请请求携带第一网络类型时,接收针对所述资源的读数据请求,所述读数据请求携带所述第一虚拟IP地址和所述第一虚拟端口,云平台可以根据所述第一虚拟端口和多个第二虚拟端口之间的对应关系,确定所述第一虚拟端口对应的多个第二虚拟端口,之后,根据所述多个第二虚拟端口查询路由表,得到每个第二虚拟端口对应的实际IP地址和第一实际端口;继而,根据所述实际IP地址和第一实际端口将所述读数据请求发送至消息队列105,以使消息队列105从所述资源读取数据。
在一些实例中,当所述第一虚拟IP地址和第一虚拟端口为一个或多个时,云平台103接收所述读数据请求,所述读数据请求携带所述第一虚拟IP地址和第一虚拟端口,云平台可以根据所述第一虚拟IP地址和第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口,根据所述实际IP地址和第一实际端口将所述读数据请求发送至消息队列105,以使消息队列105从所述资源读取数据。
在上述读写数据的过程中,第一应用客户端102还提供了如图7所示的界面图,以对所述资源的运行状态进行监控。
图7示出了对所述资源的运行状态进行监控的用户界面图。图5所示的界面图中显示有“监控”控件,如503所示,操作控件503,则显示如图7所示的界面。在图7中,可以选择定期查询的日期,如选择如701所示的“实时”,则云平台实时查询该资源的运行状态,具体的,可以查询该资源的生产流量、消费流量、消息的生产条数以及消费条数等,并将查询到的数据显示在如图7所示的界面图中。
在一些实例中,在如图7所示的界面图中,用户还可以预设所述数据的阈值,以提示告警信息。例如,可以设置生产流量的阈值,当生产流量达到所述预设的阈值时,在界面中显示提示信息,如提示对所述资源扩容等。
通过本申请一些实例提供的对所述资源的运行状态进行监控的功能,可以使得用户随时得知所述资源的运行状态,如实时生产流量、消费流量等。
在一些实例中,上述监控功能可以是云平台103中的消息统计及控制模块113实现的,消息统计及控制模块113可以是分布式的,以安全可靠地对各资源的运行状态进行监控。在一些实例中,可以为一个资源分配多个服务器,以便达到更高的可用性,此时,需对该资源生产和消费的消息流量进行监控,以防止该资源使用超过允诺的流量,本申请一些实例提供的监控功能,即可实现上述功能,且可以对多个资源实现分布式管理及控制。
步骤326:监控所述资源标识对应的资源的状态。
在一些实例中,云平台还可以对资源标识对应的资源进行监控,确定所述资源的有效期限、余额等信息。当所述资源对应的有效期限到达时,云平台103启动删除该资源的程序,即执行步骤327和步骤328。
步骤327:当确定所述资源对应的有效期限到达时,释放所述资源。
步骤328:删除所述路由表中所述对应关系。
这里,所述对应关系为所述第一虚拟IP地址:第一虚拟端口与所述实际IP地址:第一实际端口之间的对应关系;在一些实例中,所述对应关系还包括第一网络类型下的所述第一虚拟IP地址:第一虚拟端口与多个所述第一虚拟IP地址:第二虚拟端口之间的对应关系、及所述第一虚拟IP地址:第二虚拟端口与所述实际IP地址:第一实际端口之间的对应关系。
在一些实例中,云平台将所述资源的状态修改为删除状态,并将所述资源的状态写入数据库中,以便后续查询时,可以从所述数据库中得知。
通过上述技术方案,可以实现云平台与消息队列的结合,实现了通过所述第一虚拟IP地址和所述第一虚拟端口隐藏所述实际IP地址和所述第一实际端口,提供了一种安全、可靠、性能更佳的实时数据流处理系统。相比于用户直接使用原生消息队列以进行数据的生产和消费,需自行搭建原生消息队列,部署原生消息队列的众多组件或设备,及运行、管理、维护原生消息队列,而使用本申请一些实例提供的实时数据流处理系统时,则可以避免上述运行、维护等管理操作,仅需直接使用所述实时数据流处理系统即可,无需对所述实时数据流处理系统进行部署、运行、管理等,有效降低了运营管理成本。
在一些实例中,当消息队列105为Kafka平台时,用户在使用原生Kafka平台时,若需对原生Kafka平台的运行状态有所了解,还需部署相关的监控软件和鉴权软件,或者学习原生Kafka平台提供的开源SDK(Software Development Kit,软件开发工具包)以实现所述Kafka资源的运行状态的监控或鉴权,而使用本申请一些实例提供的实时数据流处理系统时,则无需自行搭建部署原生Kafka平台,节省了硬件及学习成本。
此外,在用户直接使用原生Kafka平台时,用户还需考虑原生Kafka平台的兼容问题,由于原生Kafka平台更新时,其消息格式和处理逻辑也不断更改,从而导致原生Kafka平台的兼容性非常差。因此,若用户使用早期版本的原生Kafka平台,进行更新后,则早期版本的原生Kafka平台可能与更新后的原生Kafka平台无法兼容,用户则无法使用更新后的原生Kafka平台的相应功能,而使用本申请一些实例提供的实时数据流处理系统,用户则无需考虑兼容问题,只需直接使用所述实时数据流处理系统即可,无需对所述实时数据流处理系统进行运营管理,如考虑原生Kafka平台的兼容问题,从而降低了运营管理成本。
在一些实例中,用户还可以将原生Kafka平台及其他Kafka平台中的数据迁移到本申请实例提供的实时数据流处理系统中。本申请一些实例提供的实时数据流处理系统完全兼容且兼容了多个版本的原生Kafka平台,用户可以直接将其使用的原生Kafka平台及其他Kafka平台中的数据迁移到所述实时数据流处理系统中,不需要修改代码等操作,实现迁移零成本。
在一些实例中,在用户直接使用原生Kafka平台时,用户还需对原生Kafka平台进行各项配置,如对服务器(broker)、消息格式等进行配置,而仅broker的配置都有一百多项,而使用本申请一些实例提供的实时数据流处理系统时,所述实时数据流处理系统对上述各项配置均已配置完成,用户仅需输入所述第一虚拟IP地址和所述第一虚拟端口进行消息的生产消费即可,无需进行各项配置,从而节省了运行维护的成本及投入。
图8示出了本申请一些实例提供的一种实时数据流处理方法的交互图。在该图中,以消息队列105为Kafka平台进行举例说明,控制台对应于第一应用客户端102,Kafka应用客户端对应于第二应用客户端108,Kafka应用客户端和控制台处于同一终端设备101中,异步流程处理模块、网络管理模块及元数据管理模块均处于云平台103中,Kafka平台105包括zookeeper集群和服务器(broker),实例对应于上述资源。如图8所示,该方法包括如下步骤:
步骤801:控制台响应用户的操作指令,向异步流程处理模块发送实例申请请求。
控制台提供的实例申请界面图如图4所示,用户通过所述界面可以选择实例的配置参数,配置参数包括如图4中401所示的计费模式、地域及产品规格等。
当在图4所示的界面中完成申请后,该实例将呈现在该用户标识下的多个实例条目中的一个条目,如图5中501所示,该条目显示有在图4中选择的各项配置信息。
在一些实例中,所述实例申请请求还携带网络类型,如图4所示的基础网络、私有网络,在选中私有网络时,还可以创建该私有网络下的子网,如果该私有网络下已有子网时,可以直接选择该子网。
步骤802:异步流程处理模块对上述配置信息进行审核。
步骤803:如果符合条件,则返回该实例的实例ID。如果不符合条件,则返回步骤801。
在一些实例中,异步流程处理模块响应于所述实例申请请求还为该实例分配网络类型标识,如私有网络标识VPCID和子网标识subnetID。
在一些实例中,异步流程处理模块将实例ID返回至控制台后,控制台显示如图5所示的界面,实例ID如501所示。在如图5所示的界面中,还显示有下载Kafka应用客户端的提示信息,如505所示。响应于用户的下载请求,将Kafka应用客户端下载至终端设备中。
这里,如果实例申请请求中携带的配置信息符合条件,则云平台启动添加路由策略的流程,即步骤804-809。
步骤804:异步流程处理模块向网络管理模块发送虚拟地址获取请求,所述虚拟地址获取请求中携带实例的配置参数,如图4中的402所示的磁盘容量、峰值带宽,虚拟地址可以包括虚拟IP地址(vIP)和虚拟端口(vport),所述虚拟地址用于将Kafka平台broker中的实际地址虚拟化,以隐藏实际地址,从而在broker升级、替换、维修等时对用户透明无感知。
这里,vIP和vport的个数可以根据实例的配置参数进行分配,例如,网络管理模块可以为该实例分配4个虚拟IP:虚拟端口,其中3个虚拟IP:虚拟端口为需与broker建立映射的虚拟IP:虚拟端口,1个虚拟IP:虚拟端口为用户通过控制台接入云平台的接入点,通过该接入点,用户可以访问Kafka平台中的数据。其中,vIP:vport还将vIP:vport1,vIP:vport2及vIP:vport3封装,仅将vIP:vport发送给终端设备,使得vIP:vport1,vIP:vport2及vIP:vport3对终端设备不可见。
在一些实例中,如果所述实例申请请求携带网络类型时,则上述虚拟地址请求还携带上述网络类型标识,如VPCID和subnetID。
步骤805:网络管理模块根据实例的配置参数为该实例分配4个的虚拟IP:虚拟端口,即vIP:vport(作为接入点),vIP:vport1,vIP:vport2及vIP:vport3,并将vIP:vport,vIP:vport1,vIP:vport2及vIP:vport3发送给异步流程处理模块。
这里,通过不同的端口进行区分,当然还可以通过不同的虚拟地址:虚拟端口进行区分,本申请对此不限定。
步骤806:异步流程处理模块向元数据管理模块发送实际地址获取请求,所述实际存储地址获取请求携带vIP:vport,vIP:vport1,vIP:vport2及vIP:vport3、appID、实例ID及实例的配置参数。
步骤807:元数据管理模块根据所述实际地址获取请求,配置与所述虚拟地址对应的实际地址,即broker的IP和port,可以简写为rsIP和rsport,例如,上述用于读写数据的虚拟地址有3个,则元数据管理模块分配3个实际地址,即rsIP1:rsport1、rsIP2:rsport2、rsIP3:rsport3,并将所述vIP:vport1、vIP:vport2、vIP:vport3和rsIP1:rsport1、rsIP2:rsport2、rsIP3:rsport3建立映射关系,例如“vIP:vport1”:[“rsIP1:rsport1”],“vIP:vport2”:[“rsIP2:rsport2”],“vIP:vport3”:[“rsIP3:rsport3”]。
元数据管理模块还将所述映射关系发送至异步流程处理模块、zookeeper集群和相应的broker。
步骤808:异步流程处理模块向网络管理模块发送映射关系添加请求,所述映射关系添加请求携带所述映射关系、VPCID和subnetID。
步骤809:网络管理模块将所述映射关系、VPCID和subnetID添加至路由表中。
通过以上步骤,完成了实时数据流处理系统的创建,各用户均可以使用所述实时数据流处理系统。在一些实例中,用户可以通过Kafka应用客户端使用Kafka平台中进行读写数据,或者将原生Kafka平台或其他Kafka平台中的数据迁移至上述实时数据流处理系统中。
步骤810:控制台响应于查询操作,查询上述实例对应的vIP:vport。
步骤811:Kafka应用客户端向网络管理模块发送写数据请求,其中所述写数据请求携带vIP:vport和待写入broker的数据。
步骤812:网络管理模块根据vIP:vport与vIP:vport1,vIP:vport2,vIP:vport3之间的对应关系,确定vIP:vport1,vIP:vport2,vIP:vport3,之后,分别查询路由表,确定rsIP1:rsport1,rsIP2:rsport2,rsIP3:rsport3,并将所述数据通过zookeeper集群投递到相应的broker中。
上述技术方案中,实时数据流处理系统结合了云平台和Kafka平台两者的功能,相比于直接使用原生Kafka平台,云平台提供的管理功能可以有效降低运营管理成本,例如在部署broker时,不再需要为未来的发展做存储资源预留,所述实时数据流处理系统提供的分布式broker集群支持动态弹性扩容。
在一些实例中,还可以将上述实例删除,如图9所示,图9展示了本申请一些实例提供的删除上述实例的消息交互图,包括如下步骤:
步骤901:异步流程处理模块管理用户标识下的各实例,若确定一实例到期,则触发删除该实例的流程,即执行步骤902-907。
步骤902:异步流程处理模块向元数据管理模块发送实例删除请求,所述实例删除请求携带该实例的实例ID以及对应的用户标识。
步骤903:元数据管理模块将该实例存储在zookeeper集群上的映射关系等信息删除,并删除存储在broker上的数据。
步骤904:异步流程处理模块还向网络管理模块发送路由删除请求,所述路由删除请求携带所述实例ID对应的映射关系。
步骤905:网络管理模块将路由中的映射关系删除,并向异步流程处理模块返回删除成功的消息。
步骤906:异步流程处理模块将该实例ID对应的vIP信息,即vIP:vport,vIP:vport1,vIP:vport2,vIP:vport3,退还给网络管理模块。
步骤907:异步流程处理模块还将该实例的状态更改为删除状态,并写入数据库中,以供用户查询。
上述技术方案中,通过随时监控该实例的状态,并在该实例的有效期限到达时,将该实例对应存储的数据在broker中删除,释放Kafka资源,以高效管理所述实例。
基于上述实例提供的方法,本申请一些实例还提出了一种实时数据流处理系统1000,包括异步流程处理模块1001、网络管理模块1002、元数据管理模块1003。
异步流程处理模块1001,接收终端设备的资源申请请求;其中,所述资源申请请求中携带资源的参数;根据所述资源申请请求返回所述资源的资源标识,并向网络管理模块1002发送虚拟地址获取请求,所述虚拟地址获取请求携带所述参数,其中,所述虚拟地址包括第一虚拟IP地址和第一虚拟端口;
网络管理模块1002,根据所述参数为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口,并将所述第一虚拟IP地址和所述第一虚拟端口发送给异步流程处理模块1001;
异步流程处理模块1001,进一步向元数据管理模块1003发送实际地址获取请求,所述实际地址获取请求携带参数、第一虚拟IP地址、第一虚拟端口、资源标识,所述实际地址包括实际IP地址和第一实际端口,所述实际地址用于提供资源服务;
元数据管理模块1003,根据所述参数分配与所述虚拟地址对应的实际地址,并将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系发送至异步流程处理模块1001;
异步流程处理模块1001,进一步向网络管理模块1002发送对应关系添加请求,所述对应关系添加请求携带所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系;
网络管理模块1002,进一步将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至所述路由表中;
网络管理模块1002,进一步接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的所述实际IP地址和第一实际端口;将所述资源管理请求发送至所述实际IP地址和第一实际端口,以根据所述资源管理请求对所述资源进行管理。
在一些实例中,实时数据流处理系统1000进一步包括数据库1004:异步流程处理模块1001将所述对应关系写入数据库1004。
在一些实例中,实时数据流处理系统1000包括:异步流程处理模块1001,进一步监控所述资源标识对应的资源的状态;当确定所述资源对应的有效期限到达时,将所述资源标识和所述资源的状态发送至元数据管理模块1003;
元数据管理模块1003,进一步根据所述资源标识和所述资源的状态释放所述资源,并删除所述路由表中所述对应关系。
在一些实例中,所述资源申请请求中还携带第一网络类型,网络管理模块1002,进一步根据所述参数、第一网络类型为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口;元数据管理模块1003,进一步根据所述参数、第一网络类型确定所述实际IP地址和第一实际端口;网络管理模块1002,进一步将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口、所述第一网络类型之间的对应关系添加至所述路由表中。
在一些实例中,实时数据流处理系统1000进一步包括:网络管理模块1002,进一步接收异步流程处理模块1001发送的路由添加请求,所述路由添加请求携带第二网络类型及资源标识,异步流程处理模块1001接收终端设备发送的所述路由添加请求;根据所述资源标识确定所述资源的参数;根据所述参数和第二网络类型为所述资源分配第二虚拟IP地址和第二虚拟端口;网络管理模块1002,进一步根据所述参数和所述第二网络类型确定所述实际IP地址对应的第二实际端口;及将所述第二虚拟IP地址、第二虚拟端口和所述实际IP地址、第二实际端口、所述第二网络类型之间的对应关系添加至所述路由表中。
图11示出了Kafka资源的管理装置所在的计算设备的组成结构图。
如图11所示,该计算设备典型地包括一个或更多处理单元(CPU)1102,一个或多个网络接口1104,存储器1106,和用于互联这些组件的一个或多个通信总线1108(有时也称为芯片集)。计算设备也可选地包括用户接口1110。用户接口1110包括一个或多个使能媒体数据的呈现的输出设备1112,该一个或多个输出设备包括一个或多个扬声器和/或一个或多个可视化显示器。用户界面1110也包括一个或多个输入设备1114,该一个或多个输入设备1114包括便利用户输入的用户接口组件,诸如键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机,或其他输入按钮或控件等。
存储器1106包括高速随机存取存储器,诸如DRAM,SRAM,DDR RAM,或其他随机存取固态存储设备;和,包括非易失性存储器,诸如一个或多个磁盘存储设备,光盘存储设备,闪存设备,或其他非易失性固态存储设备。存储器1106还可以包括一个或多个从CPU1102远程定位的存储设备。存储器1106,或,存储器1106内的非易性存储设备,包括非易失性计算机可读存储介质。在一些实施方式中,存储器1106,或存储器1106的非易失性计算机可读存储介质,存储以下程序,模块,或数据结构,或其子集或超集:
·操作系统1116,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
·网络通信模块1118,用于通过一个或多个网络接口(有线或无线)(例如,蓝牙接口,WiFi,低功耗蓝牙,USB等)将推流客户端所在的计算设备连接至其他计算设备;
·呈现模块1120,用于通过与用户接口1110关联的一个或多个输出设备1112(例如,显示器、扬声器等);
·输入处理模块1122,用于检测来自一个或多个输入设备1114中的一个输入设备的一个或多个用户输入或交互,并解析检测的输入和交互。
在一些实施例中,存储器1106也包括实时数据流处理系统1124,在一些实施例中,实时数据流处理系统1124包括但不限于:
o异步流程处理模块1126,用于接收终端设备的资源申请请求;其中,所述资源申请请求中携带资源的参数;根据所述资源申请请求返回所述资源的资源标识,并向网络管理模块1128发送虚拟地址获取请求,所述虚拟地址获取请求携带所述参数,所述虚拟地址包括第一虚拟IP地址和第一虚拟端口;向元数据管理模块1130发送实际地址获取请求,所述实际地址获取请求携带参数、第一虚拟IP地址、第一虚拟端口、资源标识,所述实际地址包括实际IP地址和第一实际端口,所述实际地址用于提供资源服务;向网络管理模块1128发送对应关系添加请求,所述对应关系添加请求携带所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系;将所述对应关系写入数据库1132。
o网络管理模块1128,用于根据所述参数为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口,并将所述第一虚拟IP地址和所述第一虚拟端口发送给异步流程处理模块1126;将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系添加至路由表中;接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据所述第一虚拟IP地址和所述第一虚拟端口查询路由表,确定所述第一虚拟IP地址和第一虚拟端口对应的所述实际IP地址和第一实际端口;将所述资源管理请求发送至所述实际IP地址和第一实际端口,以根据所述资源管理请求对所述资源进行管理。
o元数据管理模块1130,用于根据所述参数分配与所述虚拟地址对应的实际地址,并将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系发送至异步流程处理模块1126。
以上所述的单元可以存储在之前提及的一个或多个存储设备中,并且对应于用于执行以上描述的功能的指令集。不需要作为独立的软件程序,过程,模块,或数据结构而实现以上所述的模块或程序(例如,指令集),因此,可以以各种方式组合或重排这些模块的各种子集。在一些实施例中,存储器1106可选地存储以上所述的模块和数据结构的子集。进一步地,存储器1106可选地存储以上未描述的外加模块和数据结构。
以上所述仅为本申请的较佳实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (17)
1.一种实时数据流处理方法,其特征在于,包括:
接收资源申请请求,所述资源申请请求中携带资源的参数;根据所述参数,为所述资源分配第一虚拟IP地址和第一虚拟端口;根据所述参数,确定用于提供资源服务的实际IP地址和第一实际端口;
将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系,添加至路由表中;
根据所述参数和所述实际IP地址、所述第一实际端口,分配所述资源;
接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;
根据携带的第一虚拟IP地址和第一虚拟端口,查询所述路由表,确定与携带的第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口;
将所述资源管理请求发送至所确定的实际IP地址和第一实际端口,以根据所述资源管理请求对所述待管理的资源进行管理。
2.根据权利要求1所述的方法,其中,在分配所述资源时,所述方法进一步包括:
分配所述资源的资源标识。
3.根据权利要求1所述的方法,进一步包括:
根据所述参数,为所述资源分配与所述第一虚拟IP地址对应的多个第二虚拟端口;
其中,所述根据所述参数,确定用于提供资源服务的实际IP地址和第一实际端口,包括:
针对每个第二虚拟端口,根据所述参数,确定一个实际IP地址和一个第一实际端口;
其中,所述将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系,添加至路由表中,包括:
将所述第一虚拟端口和多个第二虚拟端口之间的对应关系,添加到所述路由表中;
将所述第一虚拟IP地址、每个第二虚拟端口、与每个第二虚拟端口对应的实际IP地址和第一实际端口之间的对应关系,添加至所述路由表中。
4.根据权利要求3所述的方法,其中,所述根据携带的第一虚拟IP地址和第一虚拟端口,查询所述路由表,确定与携带的第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口,包括:
根据第一虚拟端口和多个第二虚拟端口之间的对应关系,确定与第一虚拟端口对应的多个第二虚拟端口;
根据确定的多个第二虚拟端口,分别查询所述路由表,得到每个确定的第二虚拟端口对应的实际IP地址和第一实际端口。
5.根据权利要求1所述的方法,其中,所述资源申请请求中还携带第一网络类型,所述根据所述参数,为所述资源分配第一虚拟IP地址和第一虚拟端口,包括:
根据所述参数、所述第一网络类型,为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口;
所述根据所述参数,确定用于提供资源服务的实际IP地址和第一实际端口,包括:
根据所述参数、所述第一网络类型,确定所述实际IP地址和所述第一实际端口;
所述将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系,添加至路由表中,包括:
将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口、所述第一网络类型之间的对应关系,添加至所述路由表中。
6.根据权利要求2所述的方法,其中,在分配所述资源标识之后,所述方法进一步包括:
接收路由添加请求,所述路由添加请求携带第二网络类型及所述资源标识;
根据所述资源标识,确定所述资源的所述参数;
根据所述参数和所述第二网络类型,为所述资源分配第二虚拟IP地址和第三虚拟端口;
根据所述参数和所述第二网络类型,确定所述实际IP地址对应的第二实际端口;
将所述第二虚拟IP地址、所述第三虚拟端口和所述实际IP地址、所述第二实际端口、所述第二网络类型之间的对应关系,添加至所述路由表中。
7.根据权利要求2所述的方法,其中,在分配所述资源标识之后,所述方法进一步包括:
监控所述资源标识对应的所述资源的状态,当确定所述资源对应的有效期限到达时,释放所述资源;
删除所述路由表中的所述对应关系。
8.根据权利要求1所述的方法,其中,所述资源管理请求还携带用户标识,在根据携带的第一虚拟IP地址和第一虚拟端口,查询所述路由表,确定与携带的第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口之前,包括:
根据所述用户标识,对所述资源管理请求进行鉴权;
当鉴权通过时,根据携带的第一虚拟IP地址和第一虚拟端口,查询所述路由表,确定与携带的第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口。
9.根据权利要求2所述的方法,其中,所述资源管理请求为写数据请求,所述写数据请求中进一步包括待写入的数据,所述将所述资源管理请求发送至所确定的实际IP地址和第一实际端口,包括:
将所述待写入的数据发送至所确定的实际IP地址和第一实际端口,以将所述待写入的数据与所述资源标识对应存储。
10.根据权利要求1所述的方法,其中,所述资源管理请求为读数据请求,所述将所述资源管理请求发送至所确定的实际IP地址和第一实际端口,包括:
将所述读数据请求发送至所确定的实际IP地址和第一实际端口,以从所述资源中读取数据。
11.一种实时数据流处理系统,其特征在于,包括异步流程处理模块、网络管理模块、元数据管理模块:
所述异步流程处理模块,接收终端设备的资源申请请求;其中,所述资源申请请求中携带资源的参数;向所述网络管理模块发送虚拟地址获取请求,所述虚拟地址获取请求携带所述参数;
所述网络管理模块,根据所述参数,为所述资源分配第一虚拟IP地址和第一虚拟端口,并将所述第一虚拟IP地址和所述第一虚拟端口发送给所述异步流程处理模块;
所述异步流程处理模块,进一步向所述元数据管理模块发送实际地址获取请求,所述实际地址获取请求携带所述参数、所述第一虚拟IP地址、所述第一虚拟端口;
所述元数据管理模块,根据所述参数,确定用于提供资源服务的实际IP地址和第一实际端口,并将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系,发送至所述异步流程处理模块;
所述异步流程处理模块,进一步向所述网络管理模块发送对应关系添加请求,所述对应关系添加请求携带所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系;
所述网络管理模块,进一步将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口之间的对应关系,添加至路由表中;
所述网络管理模块,进一步接收资源管理请求,所述资源管理请求携带与待管理的资源对应的第一虚拟IP地址和第一虚拟端口;根据携带的第一虚拟IP地址和第一虚拟端口,查询所述路由表,确定与携带的第一虚拟IP地址和第一虚拟端口对应的实际IP地址和第一实际端口;将所述资源管理请求发送至所确定的实际IP地址和第一实际端口,以根据所述资源管理请求对所述待管理的资源进行管理。
12.根据权利要求11所述的系统,进一步包括:数据库,所述异步流程处理模块,进一步将所述对应关系写入所述数据库。
13.根据权利要求11所述的系统,其中,所述异步流程处理模块,进一步根据所述资源申请请求返回所述资源的资源标识;监控所述资源标识对应的所述资源的状态;当确定所述资源对应的有效期限到达时,将所述资源标识和所述资源的状态发送至所述元数据管理模块;
所述元数据管理模块,进一步根据所述资源标识和所述资源的状态,释放所述资源,并删除所述路由表中的所述对应关系。
14.根据权利要求11所述的系统,其中,所述资源申请请求中还携带第一网络类型,所述网络管理模块,进一步根据所述参数、所述第一网络类型,为所述资源分配所述第一虚拟IP地址和所述第一虚拟端口;
所述元数据管理模块,进一步根据所述参数、所述第一网络类型,确定所述实际IP地址和所述第一实际端口;
所述网络管理模块,进一步将所述第一虚拟IP地址、所述第一虚拟端口和所述实际IP地址、所述第一实际端口、所述第一网络类型之间的对应关系,添加至所述路由表中。
15.根据权利要求13所述的系统,其中,所述异步流程处理模块,进一步接收终端设备发送的路由添加请求,所述路由添加请求携带第二网络类型及所述资源标识;根据所述资源标识,确定所述资源的所述参数;根据所述参数和所述第二网络类型,为所述资源分配第二虚拟IP地址和第三虚拟端口;
所述网络管理模块,进一步根据所述参数和所述第二网络类型,确定所述实际IP地址对应的第二实际端口;及将所述第二虚拟IP地址、所述第三虚拟端口和所述实际IP地址、所述第二实际端口、所述第二网络类型之间的对应关系,添加至所述路由表中。
16.一种计算设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至10中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,实现如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857084.9A CN110198266B (zh) | 2018-07-31 | 2018-07-31 | 实时数据流处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857084.9A CN110198266B (zh) | 2018-07-31 | 2018-07-31 | 实时数据流处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198266A CN110198266A (zh) | 2019-09-03 |
CN110198266B true CN110198266B (zh) | 2021-12-10 |
Family
ID=67751376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857084.9A Active CN110198266B (zh) | 2018-07-31 | 2018-07-31 | 实时数据流处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198266B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934799B2 (en) * | 2002-01-18 | 2005-08-23 | International Business Machines Corporation | Virtualization of iSCSI storage |
US7581021B2 (en) * | 2005-04-07 | 2009-08-25 | International Business Machines Corporation | System and method for providing multiple virtual host channel adapters using virtual switches |
CN103595772A (zh) * | 2013-11-01 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟路由器的云数据中心网络部署方案 |
CN103747020B (zh) * | 2014-02-18 | 2017-01-11 | 成都致云科技有限公司 | 一种安全可控的公网访问虚拟资源方法 |
EP3435596B1 (en) * | 2014-03-14 | 2020-04-15 | Nicira Inc. | Route advertisement by managed gateways |
US10129078B2 (en) * | 2014-10-30 | 2018-11-13 | Equinix, Inc. | Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange |
-
2018
- 2018-07-31 CN CN201810857084.9A patent/CN110198266B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110198266A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
WO2019015288A1 (zh) | 数据持久化处理的方法、装置、系统及可读存储介质 | |
US9244817B2 (en) | Remote debugging in a cloud computing environment | |
WO2017049945A1 (zh) | 加速器虚拟化的方法、装置及集中资源管理器 | |
US11249788B2 (en) | Cloud management platform, and virtual machine management method and system | |
WO2017157156A1 (zh) | 一种用户请求的处理方法和装置 | |
WO2019228344A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
CN113268308B (zh) | 信息处理方法、装置以及存储介质 | |
WO2017041649A1 (zh) | 一种应用部署方法及设备 | |
WO2014101475A1 (zh) | 云平台应用部署方法及装置 | |
CN113301116A (zh) | 微服务应用跨网络通信方法、装置、系统及设备 | |
CN108234551B (zh) | 一种数据处理方法及装置 | |
JP7395720B2 (ja) | ライブアップリンクストリーミングのための5gフレームワーク制御を通じたネットワークベースのメディア処理ワークフロー管理 | |
CN113485927B (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
US9350738B2 (en) | Template representation of security resources | |
CN113168333B (zh) | 受协调设备环境的工作流配置 | |
CN116800616A (zh) | 虚拟化网络设备的管理方法及相关装置 | |
CN111371851A (zh) | 一种连接方法、装置及电子设备和存储介质 | |
CN114579250B (zh) | 一种构建虚拟集群的方法、装置及存储介质 | |
CN117194068A (zh) | 一种跨进程数据传输方法、系统、设备及存储介质 | |
CN110198266B (zh) | 实时数据流处理方法及系统 | |
WO2018214792A1 (zh) | 一种用于对用户设备进行流量控制的方法与设备 | |
WO2021232860A1 (zh) | 通信方法、装置及系统 | |
CN112783757B (zh) | 测试系统、方法、计算机系统和计算机可读存储介质 | |
CN115113800A (zh) | 多集群管理方法、装置、计算设备及存储介质 |
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 |