一种物联网数据接收的双机热备方法

文档序号:27032616发布日期:2021-10-24 06:01阅读:153来源:国知局
一种物联网数据接收的双机热备方法

1.本发明涉及一种物联网技术领域,尤其是一种物联网数据接收的双机热备方法。


背景技术:

2.物联网技术的应用日趋普及,尤其随着5g通信技术的应用,为物联网技术的应用提供了坚实的基础。
3.目前,主流物联网技术架构是物联网设备由运营商系统动态分配ip,组网成功后主动连接具备固定ip的物联网数据接收服务器,然后实时向物联网数据接收服务器推送物联网设备感知到的数据。
4.此种技术架构存在一个严重问题,一旦物联网数据接收服务器发生故障,不能及时的接收由物联网设备推送的数据。物联网设备在检测到通信故障时,能够存储数据到存储器中,但由于受物理存储空间有限的限制,不能存储大量的数据。因此,造成物联网设备检测到数据丢失,不能保证数据的完整性。
5.因此,需要一种高可靠的物联网数据接收方法来接收数据,保障由物联设备推送的大量数据能够被及时的接收和处理。


技术实现要素:

6.为了解决上述问题,本发明提供了一种高可靠的物联网数据接收双机热备方法,当接收主机发生故障时,备机能够立即切换到主机接收模式进行数据接收,能够实现不间断的接收数据。
7.本发明提供的一种物联网数据接收的双机热备方法,包括以下步骤:
8.s1、构建双机主备系统,包括主机和备机,在主机和备机中分别安装主备控制进程、热备组件进程和物联网数据接收进程,在主机中还安装主机进程,在备机中还安装备机进程;
9.s2、启动主机、备机,自动运行主备控制进程,主机中的主备控制进程启动主机进程,备机中的主备控制进程启动备机进程;
10.s3、在主机中运行的主备控制进程接收来自主机进程的切换备机模式消息,在备机中运行的主备控制进程接收来自备机进程的切换主机模式消息;
11.s4、运行在主机中的主机进程启动热备组件进程和物联网数据接收进程,启动后实时接收热备组件进程的消息,若接收消息失败,则认为物联网数据接收进程尚未启动,再次启动物联网数据接收进程,如果再次启动物联网数据接收进程失败,则以udp广播的方式向运行在备机中的备机进程发送主机工作异常消息,并向运行在主机中的主备控制进程发送备机模式消息,使系统切换为备机模式;
12.若热备组件进程的接收消息成功,则物联网数据接收进程已成功启动,通过热备组件进程判断物联网数据接收进程是否工作正常;如果物联网数据接收进程工作正常,则主机进程以udp方式向备机中的备机进程发送主机工作正常消息;如果物联网数据接收进
程工作异常,则主机进程以udp方式向备机进程发送主机工作异常消息;
13.s5、运行在备机中的备机进程,实时接收来自主机进程的udp广播消息,若接收主机进程消息失败,则判断为主机发生硬件故障,向备机中的主备控制进程发送主机模式消息,使备机切换为主机,按照步骤s4工作;
14.s6、若接收主机进程消息成功,则由备机进程判断该消息主机工作是否正常,如果主机工作正常,重复步骤s5;如果主机工作异常,判断主机为软件故障,向备机中的主备控制进程发送主机模式消息,使备机切换为主机,按照步骤s4工作。
15.进一步,步骤s4中物联网数据接收进程接收来自物联设备的数据成功时物联网数据接收进程向热备组件进程发送物联网数据接收正常消息,接收数据失败时物联网数据接收进程向热备组件进程发送物联网数据接收异常消息;热备组件进程根据接收来自物联网数据接收进程的消息类型向主机进程发送工作正常消息或工作异常消息。
16.进一步,步骤s2主机进程和备机进程分别以独立进程的方式由主备控制进程启动或停止。
17.进一步,步骤s2主机中的主备控制进程启动主机进程之前,判断当前系统的ip地址是否为主机ip地址,若不是主机ip地址,则设置系统ip地址为主机ip地址;备机中的主备控制进程启动备机进程之前,判断当前系统的ip地址是否为备机ip地址,若不是备机ip地址,则设置系统ip地址为备机ip地址。
18.进一步,步骤s4主机进程接收热备组件的信息方式是,热备组件进程以udp向本机发送数据的方式向主机进程主动推送消息。
19.进一步,步骤s4主机进程启动物联网数据接收进程的方式是采用操作系统层的系统调用命令。
20.进一步,步骤s2中主备控制进程通过配置文件的格式获取自身的工作模式,配置文件采用由工作模式、主机ip和备机ip构成的json格式。
21.进一步,步骤s3中所述主备控制进程采用udp网络服务监听的方式接收消息。
22.进一步,步骤s4中物联网数据接收进程工作异常是指物联网数据接收进程接收物联网设备数据超时。
23.进一步,步骤s6中主机工作异常是指主机中的物联网数据接收进程接收不到来自物联网设备的数据。
24.本发明的有益效果是:
25.1、可以实现不间断的接收物联网数据,物联网数据接收主机发生故障时,可以使物联网数据接收备机及时切换到主机模式工作,实现不间断的接收数据。
26.2、可以识别出物联网数据接收主机发生的故障类型,是硬件故障或软件故障。
27.3、可以继续使用原有开发物联网数据接收系统,仅需在原有开发物联网数据接收系统调用热备组件提供的方法即可。
28.4、可实现物联网数据接收的双机热备,无需增加额外的硬件设备,因此,采用此方法无需增加额外的成本。
附图说明
29.图1是主机主备控制进程启动主机进程流程;
30.图2是备机主备控制进程启动备机进程流程;
31.图3是主机进程工作流程;
32.图4是热备组件工作流程;
33.图5是备机进程工作流程。
具体实施方式
34.本发明应用在物联网接收软件系统中使用,用于实时接收安装在居民家里的燃气泄漏传感器、火灾传感器、应急求救及环境监测等设备主动上传数据。
35.具体步骤如下:
36.s1.主机和备机的计算机系统为centos6.5 64位操作系统、python3.6、2核cpu、内存4g、硬盘100g。
37.在主机/mypro/文件夹下安装主备控制进程文件为msprocess.py、热备组件进程文件为hotstandby.py、物联网数据接收进程文件为iot.py、主机进程文件为master.py。
38.在备机/mypro/文件夹下安装主备控制进程文件为msprocess.py、热备组件进程文件为hotstandby.py、物联网数据接收进程文件为iot.py、备机进程文件为backup.py。
39.s2.在主机、备机的系统文件/etc/rc.local中增加“cd/mypro/&&python msprocess.py”,使主机、备机在系统启动后,自动运行主备控制进程。
40.主机、备机的配置文件采用文本文件格式,内容采用json格式包括:工作模式、主机ip、备机ip。如主机配置文件内容:{工作模式:主机,主机ip:192.168.0.11,备机ip:192.168.0.12},备机配置文件内容:{工作模式:备机,主机ip:192.168.0.11,备机ip:192.168.0.12}。
41.参见图1,主机中的主备控制进程启动后,主备控制进程通过系统调用方法popen运行“ifconfig/all”获取系统ip地址,若不是主机ip地址,则通过系统调用方法popen运行“ifconfig eth0 192.168.0.11”配置系统ip地址为主机ip地址,使主机的系统ip地址为主机ip地址。通过系统调用方法popen运行命令python hotstandby.py启动主机进程。
42.参见图2,备机中的主备控制进程启动后,主备控制进程通过系统调用方法popen运行“ifconfig/all”获取系统ip地址,若不是备机ip地址,则通过系统调用方法popen运行“ifconfig eth0 192.168.0.12”配置系统ip地址为备机ip地址,使备机的系统ip地址为备机ip地址。通过系统调用方法popen运行命令python backup.py启动备机进程。
43.s3.在主机运行的主备控制进程通过建立udp网络监听本地ip地址0.0.0.0、端口号为8000,接收来自主机进程的切换备机模式消息c01。
44.切换备机模式消息c01采用json格式,包括:模式,内容:{模式:备机}。
45.在备机运行的主备控制进程通过建立udp网络监听本地ip地址0.0.0.0、端口号为8000,接收来自备机进程的切换主机模式消息c02。
46.切换主机模式消息c02采用json格式,包括:模式,内容:{模式:主机}。
47.s4.参见图3,主机进程通过系统调用方法popen运行命令python hotstandby.py启动热备组件进程、通过系统调用方法popen运行命令python iot.py启动物联网数据接收进程后,通过建立udp网络监听本地ip地址0.0.0.0、端口号为8001,接收来自热备组件进程的消息。若连续10秒内,主机进程接收不到由热备组件进程发送的工作正常消息c03或者工
作异常消息c04,则认为物联网数据接收进程尚未启动,再次通过系统调用方法popen运行命令python iot.py启动物联网数据接收进程,如果再次启动失败,则以udp网络广播的方式向备机的备机进程发送主机工作异常消息u01。并向运行在主机中的主备控制进程发送切换备机模式消息c01,使系统切换为备机模式。
48.若连续10秒内,主机进程接收到由热备组件进程发送的工作正常消息c03或者工作异常消息c04,则认为物联网数据接收进程启动成功,通过热备组件进程判断物联网数据接收进程是否工作正常。如果主机进程接收到物联网数据接收进程工作正常消息c03,则通过udp网络广播的方式向备机的备机进程发送主机工作正常消息u02,如果主机进程接收到物联网数据接收进程工作异常消息c04,则通过udp网络广播的方式向备机的备机进程发送主机工作异常消息u01。
49.物联网数据接收进程工作正常消息c03采用json格式,包括:状态,内容:{状态:正常}。
50.物联网数据接收进程工作异常消息c04采用json格式,包括:状态,内容:{状态:异常}。
51.主机工作异常消息u01采用json格式,包括:模式,内容:{主机状态:异常}。
52.主机工作正常消息u02采用json格式,包括:模式,内容:{主机状态:正常}。
53.参见图4,热备组件采用udp网络服务监听本地ip地址0.0.0.0、端口号为8002,接收来自物联网数据接收进程的接收正常消息m01和接收异常消息m02。热备组件接收到来自数据接收进程的接收正常消息m01后,以udp数据的方式向主机进程发送工作正常消息c03;热备组件接收到来自数据接收进程的接收异常消息m02后,以udp数据的方式向主机进程发送工作异常消息c04。
54.物联网数据接收进程接收正常消息m01采用json格式,包括:状态、时间,内容:{状态:正常,时间:年月日时分秒}。
55.物联网数据接收进程接收异常消息m02采用json格式,包括:状态、时间,内容:{状态:异常,时间:年月日时分秒}。
56.s5.参见图5,备机进程采用udp网络服务监听本地ip地址0.0.0.0、端口号为8003,接收来自主机进程的udp广播消息。若接收主机进程的广播消息失败,则判断主机为硬件故障,并向备机中的主备控制进程发送切换主机模式消息c02;
57.s6.参见图5,若接收主机进程的广播消息成功,则由备机进程通过解析该消息判断主机工作是否正常。若是主机工作正常消息u02,则重复步骤s5,继续接收来自主机进程的广播消息;若是主机工作异常消息u01(主机中的物联网数接收进程接收不到来自物联网设备的数据),则判断主机为软件故障,并向备机中的主备控制进程发送主机模式消息c02,是备机切换为主机,按照步骤s4工作。
58.以上仅为本发明的具体实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1