流量转发系统、设备、方法以及物联网系统与流程

文档序号:25991751发布日期:2021-07-23 21:03阅读:123来源:国知局
流量转发系统、设备、方法以及物联网系统与流程
本发明涉及物联网和工业互联网领域,更具体地涉及一种流量转发系统、设备、方法和物联网系统。
背景技术
:随着物联网技术的发展及物联网业务的井喷,公司工业互联网平台接入的工业设备数量和在线连接数达百万级,每天上下行数据传输量过亿,每秒数据存储写入次数过十万。为了满足公司物联网业务快速发展要求,以全新的互联网技术打造一套全新的工业互联网平台替换老的物联网平台。随着物联网和工业互联网的演进,新老平台切换需要满足以下要求:1)新老平台切换期间需要保证新老平台能够稳定并行,且持续时间半年以上。2)新老平台切换需要分阶段、分设备类型实施,并且不能影响上层应用,需要达到用户无感知的平滑切换以及新老平台背靠背过渡。网关作为平台设备接入的入口在切换过程尤为重要,因此需要设计一整套满足现有百十万级别长连接规模和十万级高并发高吞吐量的解决方案,能够同时实现设备数据单个、批量及全量的逐步切换;能够动态设置上下行数据链路;能够实时将设备连接和数据按照开关规则同时转发至新老两个平台,并实现两个平台与设备间的数据交互。因此,现有技术需要研究和设计一整套集群部署方案用于解决工业互联网海量连接高并发高吞吐场景下,终端连接和数据根据开关规则动态匹配上下行规则的问题。为大规模工业互联网场景下,提供终端双发场景的参考。上述在背景部分公开的信息仅用于对本发明的背景做进一步的理解,因此它可以包含对于本领域普通技术人员已知的不构成现有技术的信息。技术实现要素:本发明提供了一种流量转发系统、设备以及物联网系统,能够解决物联网或工业互联网海量连接及并发高吞吐场景下,终端连接和数据根据开关规则动态匹配上下行规则的问题。为此,本发明一方面提供了一种流量转发系统,另一方面提供了一种流量转发设备,另一方面提供了一种流量转发方法,另一方面提供了一种物联网系统。本发明的第一方面提供了一种流量转发系统,包括:第一虚拟服务器,用于对来自终端设备的流量和数据进行转发;流量代理,与所述第一虚拟服务器相耦接,根据设定的规则分别建立所述终端设备与新网关和老网关的长连接以进行流量和数据的匹配转发。根据本发明的一个实施例,还包括:还包括:流量开关,所述流量开关与所述流量代理相耦接,用于执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。根据本发明的一个实施例,所述第一虚拟服务器为虚拟服务器集群,所述流量代理为流量代理集群,所述新网关和老网为新网关集群和老网关集群,其中所述第一虚拟服务器、所述流量代理、所述新网关和老网关通过集群方式连接。根据本发明的一个实施例,所述第一虚拟服务器包括多个虚拟服务器,所述流量代理包括多个流量代理模块,所述第一虚拟服务器、多个流量代理、所述新网关和老网关在流量和数据匹配转发时进行一一对应连接。根据本发明的一个实施例,还包括,用于扩展终端设备连接数量的第一虚拟网卡和第二虚拟网卡,其中第一虚拟网卡设置在老网关与流量代理之间,第二虚拟网卡设置在新网关和流量代理之间。根据本发明的一个实施例,其中所述新网关、第一虚拟网卡和第二虚拟网卡和所述流量代理部署在同一台机器上。根据本发明的一个实施例,所述流量代理中包括流量双发程序,所述流量双发程序使得所述终端设备通过互联网与新网关和老网关同时维持两个长连接进行流量和数据的交互,以及其中,所述终端设备通过流量代理将流量实时发送给新网关和老网关,并且接收来自新网关和老网关的指令数据。根据本发明的一个实施例,所述第一虚拟服务器用于对设备的流量进行负载均衡和内容转发。根据本发明的一个实施例,其中所述设定的规则包括连接双发、数据解析、数据校验和上下行规则判断的一者或多者。根据本发明的一个实施例,所述流量代理实时访问流量开关配置数据作为终端设备流量和数据的上下行匹配转发的依据根据本发明的一个实施例,其中所述流量开关为redis开关,并且能通过kafka事件通知方式修改redis开关中的配置数据,其中所述redis开关配置在二级缓存中。根据本发明的一个实施例,还包括物理网卡,所述物理网络设置在所述第一虚拟服务器和流量代理之间。根据本发明的一个实施例,还包括用于流量转发的第二虚拟服务器和第三虚拟服务器,其中所述第二虚拟服务器设置在流量代理和老网关之间,所述第三虚拟服务器设置在流量代理和新网关之间。根据本发明的一个实施例,所述第一虚拟服务器、第二虚拟服务器和所述第三虚拟服务器为linux虚拟服务器或linux虚拟服务器集群,所述流量代理为流量代理切换集群。根据本发明的一个实施例,其中,对所述长连接进行二进制编码,所述流量开关通过位操作判断开关变量的操作来实现对所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。本发明的第二方面提供一种流量转发设备,包括:新网关、流量代理、第一虚拟网卡和第二虚拟网卡,其中:流量代理,根据设定的规则分别建立外部终端设备与新网关和老网关的长连接以进行流量和数据的匹配转发;第一虚拟网卡,设置在老网关和流量代理之间,用于扩展外部终端设备与老网关长连接的数量;第二虚拟网卡,设置在新网关和流量代理之间,用于扩展外部终端设备与新网关长连接的数量;新网关,与所述第二虚拟网卡相耦接。根据本发明的一个实施例,其中,所述流量代理与外部流量开关相耦接,所述外部流量开关用于执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。根据本发明的一个实施例,还包括物理网卡,所述物理网卡与外部虚拟服务器连接,所述外部虚拟服务器将来自外部终端设备的流量转发至所述物理网卡。根据本发明的一个实施例,其中所述流量代理中包括流量双发程序,所述流量双发程序使得所述终端设备通过互联网与新网关和老网关同时维持两个长连接进行流量和数据的交互。根据本发明的一个实施例,所述流量代理实时访问所述流量开关配置数据作为终端设备流量和数据的上下行匹配转发的依据。根据本发明的一个实施例,其中所述流量开关为redis开关,并且能通过kafka事件通知方式修改redis开关中的配置数据,其中所述redis开关配置在二级缓存中。本发明的第三方面提供一种物联网系统,包括本发明的流量转发系统或流量转发设备。本发明的第四方面提供一种流量转发方法,包括:通过虚拟服务器,对来自终端设备的流量和数据进行转发;将所述虚拟服务器的转发的流量和数据发送至流量代理,通过设定的规则分别建立所述终端设备与新网关和老网关的长连接,以进行流量和数据的匹配转发。根据本发明的一个实施例,通过与所述流量代理连接的流量开关根据配置数据进行规则匹配以执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。根据本发明的一个实施例,所述配置数据存储在redis开关中,并且通过kafka事件通知方式修改所述redis开关中的配置数据,所述redis开关配置在二级缓存中。根据本发明的一个实施例,对所述长连接进行二进制编码,所述流量开关通过位操作判断开关变量的操作来实现对所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。本发明的技术效果为:(1)通过ota等手段改变终端设备发送地址或不通过对终端进行改造使终端能够与新老平台实现双平台数据交互,确保新老平台平滑过渡;(2)终端双发接入性能高效,吞吐量高,终端连接数量能够突破单机端口资源限制,提高服务器使用效率和较低部署成本:(3)集群化灵活部署,无中心化限制,线性扩展简单,能够简单通过增加机器扩展接入容量基本对集群性能无影响,达到高并发海量接入的目标;(4)可以实时灵活动态设置上下行规则,方便业务动态调整;(5)流量双反代理方案对双发新网关和老网关无任何侵入性,不需要对终端和新老网关进行任何软硬件改造,网络流量代理流程双发完全通过代理服务程序实现,目的双发网关无感知,对业务无影响。附图说明为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图进行简单介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明的一个示例性的实施例的流量转发系统的整体设计框图。图2是根据本发明的一个示例性实施例的流量转发系统的单机部署框图。图3是根据本发明的一个示例性的实施例的流量转发系统的整体方案实施框图。图4是根据本发明的一个示例性的实施例的流量转发系统的数据流程图。图5是根据本发明的一个示例性的实施例的流量转发系统的部署框图。图6是根据本发明的一个示例性的实施例的流量转发系统的最小实现方案框图。图7是本发明的一个示例性的实施例的流量转发方法的实现流程图。具体实施例如在本文中所使用的,词语“第一”、“第二”等可以用于描述本发明的示例性实施例中的元件。这些词语只用于区分一个元件与另一元件,并且对应元件的固有特征或顺序等不受该词语的限制。除非另有定义,本文中使用的所有术语(包括技术或科学术语)具有与本发明所属
技术领域
的普通技术人员通常理解的含意相同的含意。如在常用词典中定义的那些术语被解释为具有与相关
技术领域
中的上下文含意相同的含意,而不被解释为具有理想或过于正式的含意,除非在本发明中被明确定义为具有这样的含意。本领域的技术人员将理解的是,本文中描述的且在附图中说明的本发明的装置和方法是非限制性的示例性实施例,并且本发明的范围仅由权利要求书限定。结合一个示例性实施例所说明或描述的特征可与其他实施例的特征组合。这种修改和变化包括在本发明的范围内。下文中,将参考附图详细描述本发明的示例性实施例。在附图中,省略相关已知功能或配置的详细描述,以避免不必要地遮蔽本发明的技术要点。另外,通篇描述中,相同的附图标记始终指代相同的电路、模块或单元,并且为了简洁,省略对相同电路、模块或单元的重复描述。此外,应当理解一个或多个以下方法或其方面可以通过至少一个控制系统、控制单元或控制器执行。术语“控制单元”,“控制器”,“控制模块”或者“主控模块”可以指代包括存储器和处理器的硬件设备,术语“物联网”或“工业互联网”可以指代类似于物联网或工业互联网的系统或设备。存储器或者计算机可读存储介质配置成存储程序指令,而处理器具体配置成执行程序指令以执行将在以下进一步描述的一个或更多进程。而且,应当理解,正如本领域普通技术人员将意识到的,以下方法可以通过包括处理器并结合一个或多个其他部件来执行。本发明的方案中,用到的术语及解释如下:1.tcp长连接:是指通讯双方在通讯前预先沟通建立网络连接通道,在一个网络连接上可以连续收发多数据包;连接保持期间,如果没有数据包发送,需要双方发链路检测包;长连接多用于操作频繁,点对点的通讯。2.集群:一组相互独立的计算机,通过高速的网络组成一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。3.负载均衡:指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,从而协同完成工作任务。4.网关:是不同网络间数据流转的桥梁。5.流量代理服务:介于终端和网关间的网络流量代理服务,终端所有的流量进出都要经过流量代理服务。6.lvs:即linux虚拟服务器,采用ip负载均衡技术和基于内容请求分发技术;高吞吐率调度器,能自动屏蔽掉服务器的故障将请求均衡地转移到不同的服务器上执行,从而构成一个高性能的、高可用的虚拟服务器。7.redis:redis(remotedictionaryserver),即远程字典服务,是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。8.kafka:一种高吞吐量的分布式发布订阅消息系统,通过高效的磁盘数据结构提供消息的持久化及数据高吞吐流转。9.ota:即ota升级,是指硬件终端通过无线网络下载远程服务器上的升级包,对系统或应用进行升级的技术。10.nio:即非阻塞模式io,区别于普通的阻塞模式io,nio是采用多路复用的io模型,以事件驱动方式进行消息通知和传递;nio可以让服务器端使用一个或有限几个线程来同时处理连接到服务器端的所有客户端,大大提高服务端的连接和并发处理能力。在存在新物联网(或工业互联网)平台和老物联网(或工业互联网)平台的场景中,现有技术的解决方案存在以下问题:(1)转发策略固定,主要为负载均衡设计,只能将长连接发到后备网关中一个,不能同时维持终端和多个网关的长连接,且数据不能同时发送到多个网关。(2)开源方案只对连接和数据进行全量转发,不能对连接收发数据按照转发规则进行设置。(3)长连接转发建立tcp长连接通道,受限客户端端口65535单台连接资源的限制,单机部署存在连接瓶颈。(4)不能达到百万级别长连接的转发。(5)框架开发语言和平台不一致,导致跨语言开发协议编解码器等额外工作。本发明的技术设计方案基于新老系统切换网关分步骤,分批次,逐步过渡平滑切换的目的,研究设计一整套工业互联网海量连接和高并发流量数据的流量代理双发技术解决方案。在流量入口到新网关和老网关增加流量代理层,根据设备编号的预设参数设置对流量上下行数据流向进行控制,实现终端在新老平台的单个、批量、全量的指定下行及上行双发功能,逐步切换流量,实现数据平滑过渡;通过指令流量开关指定下行指令是否生效,同时指定上行上报数据,下行指令应答数据按照规则是否发送给新平台,老平台或者新老两平台,同时能够自动将来自新平台或老平台的指令应答数据回报给发送方,不会造成数据误发,防止业务脏数据。图1是根据本发明的一个示例性的实施例的流量转发系统的整体设计框图。如图1所示,网关作为平台数据的入口,在网关增加流量双发程序作为流量双发代理的入口和开关切换逻辑;流量双发是硬件终端通过互联网络和新老平台两个网关同时维持两个长连接进行数据交互,将终端数据实时发送给新老平台两个网关,也能接收来自两个网关的指令消息。如图1所示,设备终端通过tcp长连接接入到lvs,通过lvs的dr负载均衡模式连接到流量代理程序,代理程序再分别为每个终端与新老平台建立两个长连接,通信过程完全按照遵从tcp标准通信流程,通信过程对双发网关完全透明。根据本发明的一个或多个实施例,长连接是物联网或工业互联网的网络通信中,在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。相对长连接,相对的是短连接,短连接是通信双方在需要收发数据前建立tcp连接,数据交互完成后,立即关闭连接通道;但是在工业互联网数据收发频繁场景中,建立和关闭连接比较耗费计算机资源,因此在数据收发频繁时采用长连接,长连接可以在数据交互整个流程中保持通道一直处理活动状态,提高收据收发效率,同时因为网络通道一直处于激活状态,提升数据收发的实时性。长连接尤其在在物联网,工业互联网、即时通信,应用程序推送使用较多。图2是根据本发明的一个示例性实施例的流量转发系统的单机部署框图。如图2所示,为了合理高效利用机器资源,网关和流量代理程序可以部署到同一台机器,受限于单机65535端口资源限制,采用双虚拟网卡的方式扩容机器连接数量,连接新老平台网关的客户端程序都独占一块虚拟网卡。在图2中虚拟网卡1连接在流量双发代理和老网关之间,虚拟网卡2连接在流量双发代理和新网关之间,其中虚拟网卡1和虚拟网卡2、流量双发代理以及新网卡可集成在单机设备中。图3是根据本发明的一个示例性的实施例的流量转发系统的整体方案实施框图。如图3所示,为了满足百十万级别在线连接数量及高并发流量双发要求,使用lvs集群进行tcp均衡负载和内容转发,所有连接和流量的入口在lvs层,经lvs均衡策略协调和流量转发后,转入流量代理服务,在流量代理服务上进行连接双发,数据解析,数据校验,上下行规则判断等,再根据规则分发到新网关和老网关;redis开关用来存储终端流量上下行切换开关设置,流量代理实时访问redis开关设置数据作为终端数据上下行依据;为了降低redis开关数据访问频次数和并发性能,设计redis开关,并在本地内存二级缓存方式中实现redis开关;并且能通过kafka事件通知方式修改redis开关中的配置数据,或者修改本地内存中的和流量开关相关的配置数据设置,使用户上下行判断逻辑能够实时生效。根据本发明的一个或多个实施例,本发明的物联网或工业互联网流量转发系统,包括:第一虚拟服务器,如图3所示的lvs,用于对来自终端设备的流量和数据进行转发;流量代理,如图3所示的1多个流量代理,与所述第一虚拟服务器相耦接,根据设定的规则分别建立所述终端设备与新网关和老网关的长连接以进行流量和数据的匹配转发;流量开关,如图3所示的redis开关,其中redis与web和mysql数据相连接,其中mysql存储基础数据,redis开关与流量代理相连接(或耦接),从而执行打开关闭所述终端设备和新网关和老网关间的流量和数据匹配转发。根据本发明的一个或多个实施例,所述第一虚拟服务器为虚拟服务器集群,所述流量代理为流量代理集群,所述新网关和老网为新网关集群和老网关集群,其中所述第一虚拟服务器、所述流量代理、所述新网关和老网关通过集群方式连接。根据本发明的一个或多个实施例,第一虚拟服务器包括多个虚拟服务器,所述流量代理包括多个流量代理模块,所述第一虚拟服务器、多个流量代理、所述新网关和老网关在流量和数据转发时进行一一对应连接。图4是根据本发明的一个示例性的实施例的流量转发系统的数据流程图。如图4所示,流量代理服务需要维持每个终端和双发网关同时维持长连接,终端和双发网关都是单独的长连接通道。流量开关是数据双发切换的关键,每个终端的每次数据上下行都通过此开关进行过滤。在每个单独的连接和每次数据上下行中,都要根据redis开关配置数据做规则匹配决定数据分发操作,因此对数据收发都要进行数据编解码操作。为了提高redis开关匹效率,通过二进制位操作来执行上下行逻辑,开关规则如下表所示:规则下行上行通行标识(二进制)规则1新平台新平台1100规则2新平台新平台,老平台1110规则3老平台老平台0011规则4老平台老平台,新平台1011根据本发明的一个或多个实施例,为了实现流量上下行,新老网关等多维度方向和开禁控制等功能;需要在应用中对流量代理与终端,代理与新网关,流量代理与老网关的三个长连接的编解码数据进行业务逻辑的判断,如果在物联网或工业互联网长连接高峰期,每秒的在线判断次数可能是5000*6=30000,为了提高判断效率,采用上下行开发进行二进制方式编码(如上表所示),采用位操作方式进行开关变量判断来实现终端设备和新网关和老网关间的流量和数据匹配转发的快速打开和关闭。在服务器应用领域,由于采用布尔运算,位操作在开发语言中执行效率很高,非常适合用于流量开关的中变量的判断以及更新。为方便业务及用户操作,设计全量切换开关和编号切换开关两级开关控制。流量双发网络应用程序框架基于高性能异步、事件驱动nio框架nettynio开发实现;netty的高性能和高效能够较好的解决网络通信的性能和开发效率问题。图5是根据本发明的一个示例性的实施例的流量转发系统的部署框图。如图5所示,本发明的系统可用于在海量的物联网和工业互联网长连接场景下,图5所示的部署系统接入终端数量和流量很大,图5示右边双发的新网关和老网关集群可以通过lvs集群实现连接负载均衡,更大效率的保证整个部署方案的稳定性,扩展性和高效性。为了系统安全考虑,其中每个lvs集群可包括多个lvs服务器,其中lvs集群中包括了主集群(或主服务器)和备份集群(或备份服务器)。如图5所示,在终端设备和流量代理集群中设置了lvs集群,使得终端设备可以进行海量长连接中的流量和数据的匹配转发,另外在新网关和老网关的入口处也配置了lvs集群,更大程度上实现终端设备到新老网络长连接流量的负载均衡。另外采用集群化设计、以及终端和流量代理、新老网关的一一对应连接的方式可以使得系统设计更加灵活,按需部署,并且可扩展性高。图6是根据本发明的一个示例性的实施例的流量转发系统的最小实现方案框图。如图6所示,本发明的流量转发系统集群部署能够通过集群保证整个方案的吞吐量和接入能力,本发明的方案可以通过考虑具体使用场景和规则进行线性伸缩,保持线性扩展能力下的最小实现。图6示出了最小实现的流量转发系统设备,包括:新网关、流量代理、第一虚拟网卡(虚拟网卡0)和第二虚拟网卡(虚拟网卡1),其中:流量代理,流量代理,根据设定的规则分别建立外部终端设备与新网关和老网关的长连接以进行流量和数据的匹配转发;第一虚拟网卡,设置在老网关和流量代理之间,用于扩展外部终端设备与老网关长连接的数量;第二虚拟网卡,设置在新网关和流量代理之间,用于扩展外部终端设备与新网关长连接的数量;新网关,与所述第二虚拟网卡相耦接;其中,所述流量代理与外部流量开关相耦接,所述外部流量开关用于执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。流量转发系统设备还包括物理网卡,所述物理网卡与外部虚拟服务器连接,所述外部虚拟服务器将来自外部终端设备的流量转发至所述物理网卡如图6所示,最小实现方案下redis开关,lvs组件都单独部署,如图6所示,可以同时部署流双发代理服务和新网关服务,流量双发代理服务向下通过物理网关和终端连接,向上分别通过不同虚拟网卡连接新网关和老网关,虚拟网卡的作用是为了解决单机机器单物理网关只能创建65535个长连接的资源限制问题,通过虚拟网卡技术能够突破机器资源限制,创建新老平台两个虚拟网卡与机器物理网卡一起,在不增加物理网卡资源的情况下,低成本共同组建起保持线性扩展能力的最小实现。根据本发明的方案,网络应用层框架基于高性能异步、事件驱动nio框架nettynio开发实现;其次,流量开关设置使用redis和本地内存二级缓存机制,并配合过期策略,同时采用位操作高效匹配开关规则,并将规则判断放到本地程序,极大增加效率;此外,结合lvs集群采用ip负载均衡技术和基于内容请求分发技术,实现集群化部署和线性扩展;另外,配合kafka消息队列异步通知实现开关规则实时动态刷新。图7是本发明的一个示例性的实施例的流量转发方法的实现流程图。如图7所示,在步骤s1:通过虚拟服务器,对来自终端设备的流量和数据进行转发;在步骤s2:将所述虚拟服务器的转发的流量和数据发送至流量代理,通过设定的规则分别建立所述终端设备与新网关和老网关的长连接,以进行流量和数据的匹配转发。根据本发明的一个或多个实施例,通过与所述流量代理连接的流量开关根据配置数据进行规则匹配以执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭,其中,配置数据存储在redis开关中,并且通过kafka事件通知方式修改所述redis开关中的配置数据,其中所述redis开关配置在二级缓存中。另外,在所述流量转发方法中,对所述长连接进行二进制编码,所述流量开关通过位操作判断开关变量的操作来实现对所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。根据本发明的一个或多个实施例,在流量转发的方法中,通过与所述流量代理连接的流量开关根据配置数据进行规则匹配以执行所述终端设备和新网关和老网关间的流量和数据匹配转发的打开和关闭。作为本发明示例的上文涉及的附图和本发明的详细描述,用于解释本发明,但不限制权利要求中描述的本发明的含义或范围。因此,本领域技术人员可以很容易地从上面的描述中实现修改。此外,本领域技术人员可以删除一些本文描述的组成元件而不使性能劣化,或者可以添加其它的组成元件以提高性能。此外,本领域技术人员可以根据工艺或设备的环境来改变本文描述的方法的步骤的顺序。因此,本发明的范围不应该由上文描述的实施例来确定,而是由权利要求及其等同形式来确定。尽管本发明结合目前被认为是可实现的实施例已经进行了描述,但是应当理解本发明并不限于所公开的实施例,而相反的,意在覆盖包括在所附权利要求的精神和范围内的各种修改和等同配置。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1