一种车载终端大规模互联集群方法与流程

文档序号:14993507发布日期:2018-07-20 23:01阅读:194来源:国知局

本发明是关于一种车载终端大规模互联集群方法,属于车联网技术领域。



背景技术:

近年来,车联网行业的特殊性以及终端设备数量的爆炸式增长,对车联网的it服务架构提出了更高的要求,车联网中可能存在几百万车载终端设备不停地收集数据,这些车联网数据必须安全存储起来以便他人或系统使用,如何保证车联网数据能够安全快速地上传到云服务器是人们所关心的问题。

现有车联网数据的采集方法,一般容灾性低且扩展性弱,大数据存储无限扩容的难度也很高,因此构建一个分布式高可靠性的车联网数据采集系统(响应车载终端设备发送数据的系统)很重要。其次,现有的车联网数据存储架构也无法满足车载终端设备数量爆炸式增长下的车联网数据存储需要,因此建立一个可无限扩容,且在部分车联网数据节点损坏的情况下,车联网数据仍然完好无损的车联网数据存储架构也很重要。同时,由于车联网需要及时响应,车联网数据存储低延迟(毫秒级别),现有的互联网数据访问速度也无法满足车联网的需要。

然而,现有车联网数据的采集和存储架构,一般都是采用双主(互为主备)故障切换实现两节点之间数据同步的,但是这种方式无法保证车联网数据接收的一致性,且车联网数据接收的延迟性较高,因此,急需建立一个可以有效解决上述各问题的方法。



技术实现要素:

针对上述问题,本发明的目的是提供一种能够可无限扩容、保证车联网数据接收一致性且低延迟的车载终端大规模互联集群方法。

为实现上述目的,本发明采取以下技术方案:一种车载终端大规模互联集群方法,其特征在于,包括以下步骤:步骤1):搭建netty服务器集群,其中,netty服务器集群包括若干netty服务组件和两netty负载均衡中间件;步骤2):一netty负载均衡中间件作为负载均衡器对netty服务组件进行负载均衡,实时接收若干车载终端设备发送的请求,并根据每一netty服务组件的活动情况,将请求发送至存活的netty服务组件,另一netty负载均衡中间件作为备份,在后台进行实时监控;步骤3):每一存活的netty服务组件均通过企业总线将请求发送至服务提供者,服务提供者采用负载均衡方式将各请求分配至相应微服务;步骤4):微服务对请求进行业务处理得到相应业务数据请求,并将业务数据请求发送至数据库;步骤5):数据库采用双主库双从库模式对业务数据请求进行读取处理或写入处理,并将处理结果通过netty服务组件和作为负载均衡器的netty负载均衡中间件反馈至相应车载终端设备。

进一步,所述步骤1)中的每一netty负载均衡中间件均包括一haproxy件和一keepalived件。

进一步,所述步骤2)中一netty负载均衡中间件作为负载均衡器对netty服务组件进行负载均衡,实时接收若干车载终端设备发送的请求,并根据每一netty服务组件的活动情况,将请求发送至存活的netty服务组件,另一netty负载均衡中间件作为备份,在后台进行实时监控,具体为:.1)某一netty负载均衡中间件的keepalived件通过vrrp协议抢占vip,则该netty负载均衡中间件作为负载均衡器对netty服务组件进行负载均衡,而另一netty负载均衡中间件作为备份,在后台实时监控作为负载均衡器的netty负载均衡中间件情况;2.2)作为负载均衡器的netty负载均衡中间件的haproxy件接收车载终端设备通过tcp协议发送的请求,通过该haproxy件检测各netty服务组件是否存活,并根据每一netty服务组件的活动情况,采用负载均衡方式将请求发送至存活的netty服务组件;2.3)当某一netty服务组件出现故障时,通过作为负载均衡器的netty负载均衡中间件的keepalived件自动摘除该netty服务组件,待故障恢复后再自动加入该netty服务组件。

进一步,所述步骤3)中每一存活的netty服务组件均通过企业总线将请求发送至服务提供者,服务提供者采用负载均衡方式将各请求分配至相应微服务,具体为:企业总线包括用于管理netty服务组件内部技术框架的spring组件和用于调用相应微服务接口的dubbo组件,所有微服务的接口均注册至服务提供者,且所有微服务之间均为独立关系,netty服务器集群通过spring组件和dubbo组件将车载终端设备的请求发送至服务提供者,服务提供者负载均衡各微服务的接口,将请求分配至相应微服务上,其中,每一微服务均能够部署多个netty服务组件。

进一步,所述步骤4)中的数据库包括一负载均衡器、两mycat中间件、两主库、一第一从库、一第二从库、一日报库和一结构库,每一主库均包括12个数据存储节点,每一从库均包括与主库内的数据存储节点一一对应的12个数据存储节点和24个用于同步节点数据的线程。

进一步,所述步骤5)中数据库采用双主库双从库模式对业务数据请求进行读取处理或写入处理,并将处理结果通过netty服务组件和作为负载均衡器的netty负载均衡中间件反馈至相应车载终端设备,具体为:5.1)负载均衡器接收业务数据请求,检测两mycat中间件是否存活,并根据两mycat中间件的活动情况,并采用负载均衡方式将请求发送至存活的一mycat中间件;5.2)mycat中间件根据数据库的系统配置和监控,判断该业务数据请求是写入请求还是读取请求;5.3)若该业务数据请求是写入请求,则mycat中间件采用负载因子算法,根据对两主库的负载均衡监控,将业务数据请求发送至主库内的某一数据存储节点中,使得该数据存储节点写入相应业务数据;5.4)若该业务数据请求是读取请求,则第一从库和第二从库均通过相应线程将两主库内每一数据存储节点的节点数据同步至对应的数据存储节点后,mycat中间件将业务数据请求发送至第一从库或第二从库内的某一数据存储节点中,使得该数据存储节点分别读取相应业务数据;5.5)同时,日报库从两主库上同步用于计算日报所需的数据,计算定时任务;5.6)两主库、第一从库、第二从库和日报库的同步关系均指向结构库,需要修改数据库结构时,只需在结构库上进行修改。

进一步,所述步骤5)中的数据库采用真16核cpu服务器。

本发明由于采取以上技术方案,其具有以下优点:1、本发明中的mysql(关系型数据库管理系统)数据库采用双主双从模式对业务数据请求进行分布式集群管理,将高负载分散在不同的数据存储节点上,由不同的数据存储节点来承受并发和负载,当并发和负载达到某一瓶颈时,可以通过增加数据存储节点来解决负载量和并发量增加的问题,任何一个数据存储节点的处理能力均能够保证延迟在100毫秒以内,这样在整个流程走完后,保证能在1秒内做出响应,能够实现车联网数据接收的实时性和低延迟。2、本发明的netty(客户、服务器端编程框架)服务器集群包括两netty负载均衡中间件和若干netty服务组件,netty负载均衡中间件根据每一netty服务组件的活动情况,将车载终端设备的请求发送至活动较少的netty服务组件,具有较高的稳定性和容灾性,即使任意netty服务组件都不会影响服务使用。3、本发明的mysql数据库采用双mycat中间件(数据库集群中间件),相对于比单mycat中间件,提高了可靠性,防止mycat中间件宕机造成的系统不可用,且双mycat中间件的处理能力更强,能够提高对mysql数据库访问并发的处理能力,而不提供3台或多台mycat中间件的原因是采用多台mycat中间件提高了系统复杂度,不利于系统维护,而双mycat中间件已经有足够高的并发处理能力,可以广泛应用于车联网技术领域中。

附图说明

图1是本发明互联集群方法的分布式分发计算架构图;

图2是本发明互联集群方法中负载均衡方式的原理图;

图3是本发明互联集群方法中netty服务器集群对业务逻辑处理的原理图;

图4是本发明互联集群方法中netty服务器集群和前置服务的分布式关系图;

图5是本发明互联集群方法中mysql数据库的整体架构图,其中,“○”表示数据存储节点。

具体实施方式

以下结合附图来对本发明进行详细的描绘。然而应当理解,附图的提供仅为了更好地理解本发明,它们不应该理解成对本发明的限制。

如图1所示,本发明提供的车载终端大规模互联集群方法,包括以下步骤:

1)搭建netty(客户、服务器端编程框架)服务器集群,其中,netty服务器集群包括若干netty服务组件和两netty负载均衡中间件。

2)一netty负载均衡中间件作为负载均衡器对netty服务组件进行负载均衡,实时接收若干车载终端设备发送的请求,并根据每一netty服务组件的活动情况,将请求发送至活动少且存活的netty服务组件,另一netty负载均衡中间件作为备份,在后台进行实时监控,其中,每一netty负载均衡中间件均包括一haproxy(高可用性、负载均衡软件)件和一keepalived(检测服务器状态软件)件,netty服务组件的数量可以根据实际情况进行设定,具体为:

2.1)某一netty负载均衡中间件的keepalived件通过vrrp协议(虚拟路由冗余协议)抢占vip(虚拟ip地址),防止netty服务器集群单点故障的发生,则该netty负载均衡中间件作为负载均衡器对netty服务组件进行负载均衡,而另一netty负载均衡中间件作为备份,在后台实时监控负载均衡器的情况,若作为负载均衡器的netty负载均衡中间件出现故障,则通过作为备份的netty负载均衡中间件抢占vip,继续对netty服务组件进行负载均衡。

2.2)作为负载均衡器的netty负载均衡中间件的haproxy件接收车载终端设备通过tcp协议(传输控制协议)发送的请求,通过该haproxy件检测各netty服务组件是否存活,并根据每一netty服务组件的活动情况,采用负载均衡方式将请求发送至活动少且存活的netty服务组件:

如图2所示,假设架构里有5台netty服务组件,5台netty服务组件将分担车载终端设备发送的请求,这样可以减轻单台netty服务组件的压力,如果车载终端设备增加,使得5台netty服务组件无法负载,可以再部署n台netty服务组件来减轻netty服务器集群压力,netty服务组件的数量可以动态改变。

2.3)当某一netty服务组件出现故障时,通过作为负载均衡器的netty负载均衡中间件的keepalived件自动摘除该netty服务组件,待故障恢复后再自动加入该netty服务组件。

3)如图3~4所示,每一存活的netty服务组件均通过企业总线将车载终端设备发送的请求发送至服务提供者(zookeeper),服务提供者采用负载均衡方式将各请求分配至相应应用服务即微服务,具体为:

企业总线包括spring(开放源代码的设计层面框架)组件和dubbo(开源分布式服务框架)组件,spring组件用于管理netty服务组件内部的技术框架,dubbo组件用于调用相应微服务的接口,所有微服务的接口均注册至服务提供者,且所有微服务之间均为独立关系,存活的netty服务组件通过spring组件和dubbo组件将车载终端设备的请求发送至服务提供者,服务提供者负载均衡各微服务的接口,将请求分配至相应微服务上,其中,每一微服务均能够部署多个netty服务组件。

4)微服务对请求进行业务处理得到相应业务数据请求,并将业务数据请求发送至mysql(关系型数据库管理系统)数据库,微服务的业务处理可以采用现有技术公开的方法,具体过程在此不做赘述。

5)如图5所示,mysql数据库采用双主双从模式对业务数据请求进行读取处理或写入处理,并将处理结果通过netty服务组件和作为负载均衡器的netty负载均衡中间件反馈至相应车载终端设备,其中,mysql数据库包括一负载均衡器、两mycat中间件(数据库集群中间件)、两主库、一第一从库、一第二从库、一日报库和一结构库,每一主库均包括12个数据存储节点,每一从库均包括与主库内的数据存储节点一一对应的12个数据存储节点和24个用于同步节点数据的线程,数据存储节点的数量可以根据实际情况进行设定及增加,具体为:

5.1)负载均衡器接收业务数据请求,检测两mycat中间件是否存活,并根据两mycat中间件的活动情况,采用负载均衡方式将请求发送至活动少且存活的一mycat中间件。

5.2)mycat中间件根据mysql数据库的系统配置和监控,判断该业务数据请求是写入请求还是读取请求。

5.3)若该业务数据请求是写入请求,则mycat中间件采用负载因子算法,根据对两主库的负载均衡监控,将业务数据请求发送至当前处理请求以及cpu和内存等系统资源占用少的主库内某一数据存储节点中,使得该数据存储节点写入相应业务数据,其中,负载因子算法可以采用现有技术公开的一般负载因子算法,数据写入到每一数据存储节点的比例关系为节点1∶节点2…∶节点12=1∶1…∶1。

5.4)若该业务数据请求是读取请求,则第一从库和第二从库均通过相应线程将两主库内每一数据存储节点的节点数据同步至对应的数据存储节点后,mycat中间件将业务数据请求发送至第一从库或第二从库内的某一数据存储节点中,使得该数据存储节点读取相应业务数据:

由于两主库是在做高并发的写入操作,可以预想到1s时间内两主库可能会产生大量数据,因为车联网对数据延迟性比较敏感,就要求两主库在1s内产生的数据必须及时同步至第一从库和第二从库中,如图4所示,第一从库和第二从库均指向两主库节点去同步数据,每一主库内均包括12个数据存储节点,第一从库和第二从库需要同时从两主库中将24个数据存储节点同步过来。在部署mysql数据库服务器时,mysql数据库服务器至少采用真16核cpu,这样能同时允许16*2个线程工作,即每一线程负责一个数据存储节点的同步。

在业务数据同步正常的情况下,业务数据才能被正确读取,从库中的12个数据存储节点,和主库中的12个数据存储节点是对应关系,在业务数据同步时,相应数据存储节点的业务数据会同步到从库对应的数据存储节点上,所以实际上第一从库和第二从库中的业务数据是相同的,而每一从库中12个数据存储节点上的业务数据是不同的,在读取时,mycat中间件会将各业务数据发送至不同的数据存储节点。

5.5)同时,日报库从两主库上同步用于计算日报所需的数据,计算定时任务。

5.6)两主库、第一从库、第二从库和日报库的同步关系均指向结构库,需要修改mysql数据库结构时,只需在结构库上进行修改,两主库、第一从库、第二从库和日报库会自动将修改的数据库结构进行同步,能够解决两主库之间不同步数据,造成无法修改mysql数据库结构的问题。

上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1