CN113254194A - 一种实时gnss数据处理方法和系统 - Google Patents
一种实时gnss数据处理方法和系统 Download PDFInfo
- Publication number
- CN113254194A CN113254194A CN202110334676.4A CN202110334676A CN113254194A CN 113254194 A CN113254194 A CN 113254194A CN 202110334676 A CN202110334676 A CN 202110334676A CN 113254194 A CN113254194 A CN 113254194A
- Authority
- CN
- China
- Prior art keywords
- gnss data
- processing
- server
- resolving
- task
- 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.)
- Granted
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种实时GNSS数据处理方法和系统。该方法包括:任务管理调度服务器实时向各观测基准站获取GNSS数据流,任务管理调度服务器根据解算服务器的负载状态,确定处理GNSS数据流的解算服务器;解算服务器获取GNSS数据流和GNSS数据流所属的观测基准站的上一次处理结果;解算服务器根据GNSS数据流和上一次处理结果进行任务处理;解算服务器对任务处理进行监控;当监控线程接收到反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;当监控线程接收到反馈的任务处理失败消息时,重新进行处理,直至获取到任务处理完成消息,输出GNSS数据处理结果。通过监控线程对任务处理进行监控,保证了任务处理的可靠性,解决了造成数据缺失的问题。
Description
技术领域
本申请涉及全球卫星导航技术领域,特别是涉及一种实时GNSS数据处理方法和系统。
背景技术
实时GNSS数据处理方法,应用于实时水汽反演,即通过静态监测点实时观测数据、广播星历和SSR改正数进行实时PPP解算,以获取实时水汽的一种技术。水汽是对流层中最重要的组成部分之一,尽管所占比例较小,但在多种气候和一系列天气现象中都扮演着关键角色。GNSS实时水汽反演主要用于大范围高密度的实时水汽监测,为气象部门提供参考等。利用现代技术手段,掌握对流层中水汽的时空变化,对大气结构的垂直稳定度、暴风雨以及强对流等灾害性天气的形成和演变都具有重要影响。
对于GNSS数据实时处理,现有的方案大多是单机解决方案:在单个服务器上完成GNSS实时流数据从接收到解算的所有流程,具体如下:首先,观测基准站的观测数据基于RTCM格式的NTRIP协议经过负载均衡转发后发送到通信模块,其中,观测基准站通过接收卫星接收机发送的卫星信号,实时观测卫星数据,用于GNSS实时水汽反演,得到大气的水汽含量变化;NTRIP协议:NTRIP(Networked Transport of RTCM via Internet Protocol,通过互联网进行RTCM网络传输的协议)最初由德国BKG在EUREF-IP试点项目中提出,它使用了IP-Streaming方法,与网络电台(Internet Radio)和视频会议(Video Conferencing)技术类似,RTCM为海运事业无线电技术委员会(Radio Technical Committee for MarineServices)制定的用于卫星导航及无线电通信的协议标准。其次,参考站数据和广播星历发送至实时数据流转模块,其中,参考站是连续接收和发送本站坐标及其变化,GNSS星历,星钟差等信息的地面固定站,用于纠正在卫星定位中产生的公共误差;星历是指在GPS测量中,天体运行随时间而变的精确位置或轨迹表,它是时间的函数。再次,解算服务根据配置定时对所有监测点进行解算(解算元数据包括监测点、参考站、星历)。最后,解算任务完成后,结果转储模块将解算结果进行实时分析应用。
随着全球卫星导航系统的快速发展与应用领域的不断拓展,全球建立数以万计的连续GNSS观测站,各类基于GNSS的应用逐渐被发掘出来,而采用传统的单机方式处理,就会出现随着数据量增多就会出现线程数过多,容易导致系统负载过大,出现网络阻塞,容易出现任务处理失败,造成数据缺失的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决容易出现任务处理失败,造成数据缺失问题的实时GNSS数据处理方法和系统。
一种实时GNSS数据处理方法,所述方法包括:
任务管理调度服务器通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,并根据各所述GNSS数据流所属的观测基准站放入对应的消息列队中等待处理;
所述任务管理调度服务器对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态;
所述任务管理调度服务器根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
所述解算服务器的运行槽获取所述GNSS数据流和所述GNSS数据流所属的观测基准站的上一次处理结果;
所述解算服务器的运行槽根据所述GNSS数据流和所述上一次处理结果进行任务处理;
所述解算服务器的监控线程对任务处理进行监控;
当所述监控线程接收到所述运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;
当所述监控线程接收到所述运行槽反馈的任务处理失败消息时,控制所述运行槽根据所述解算处理任务的任务标识,重新根据所述GNSS数据流和所述上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息;
当所述解算服务器的运行槽解算处理任务处理完成时,输出GNSS数据处理结果。
在其中一个实施例中,所述任务管理调度服务器根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务的步骤,包括:
任务管理调度服务器根据所述解算服务器的负载状态,判断当前已有的所述解算服务器负载是否到达最大负载量;
当所述解算服务器负载到达最大负载量时,新增解算服务器,将新增的所述解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
当所述解算服务器负载未到达最大负载量时,从当前已有的所述解算服务器中确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务。
在其中一个实施例中,所述当所述解算服务器负载未到达最大负载量时,从当前已有的所述解算服务器中确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务的步骤,包括:
当所述解算服务器负载未到达最大负载量时,判断当前已有的所述解算服务器中是否存在任务量最小的解算服务器;
当存在任务量最小的解算服务器时,将任务量最小的解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
当不存在任务量最小的解算服务器时,判断所述当前已有的解算服务器中CPU或者内存使用最少的解算服务器,将CPU或者内存使用最少的解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务。
在其中一个实施例中,所述方法还包括:将所述GNSS数据处理结果存储到内存中,并将所述GNSS数据处理结果发送至数据库进行存储。
在其中一个实施例中,所述解算服务器的运行槽获取所述GNSS数据流所属的观测基准站的上一次处理结果的步骤包括:
所述解算服务器的运行槽根据所述GNSS数据流所属的观测基准站的标识,在内存中查找是否存在所述GNSS数据流所属的观测基准站的上一次处理结果;
当所述内存中有所述GNSS数据流所属的观测基准站的上一次处理结果时,从所述内存中获取所述GNSS数据流所属的观测基准站的上一次处理结果;
当所述内存中没有所述GNSS数据流所属的观测基准站的上一次处理结果时,向所述数据库中获取所述GNSS数据流所属的观测基准站的上一次处理结果。
一种实时GNSS数据处理系统,所述系统包括任务管理调度服务器和解算服务器;
所述任务管理调度服务器用于实时向各观测基准站获取GNSS数据流,并根据各所述NSS数据流所属的观测基准站放入对应的消息列队中等待处理,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
所述解算服务的运行槽用于获取所述GNSS数据流和所述GNSS数据流所属的观测基准站的上一次处理结果,根据所述GNSS数据流和所述上一次处理结果进行处理;当所述解算服务器的运行槽解算处理任务处理完成时,输出GNSS数据处理结果;
所述解算服务的监控线程用于对任务处理进行监控,当接收到所述运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;当接收到所述运行槽反馈的任务处理失败消息时,控制所述运行槽根据所述解算处理任务的任务标识,重新根据所述GNSS数据流和所述上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息。
上述实时GNSS数据处理方法和系统,通过任务管理调度服务器通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,并根据各GNSS数据流所属的观测基准站放入对应的消息列队中等待处理;任务管理调度服务器对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态;任务管理调度服务器根据解算服务器的负载状态,确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务,解算服务器的运行槽获取GNSS数据流和GNSS数据流所属的观测基准站的上一次处理结果;解算服务器的运行槽根据GNSS数据流和上一次处理结果进行任务处理,获得GNSS数据处理结果;解算服务器的监控线程对的任务处理进行监控;当监控线程接收到运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;当监控线程接收到运行槽反馈的任务处理失败消息时,控制所述运行槽根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息。通过监控线程对任务处理进行监控,保证在任务处理出错的时候,可以迅速找出出错的位置并进行任务重新处理,保证了任务处理的可靠性,解决了容易出现任务处理失败,造成数据缺失的问题。
附图说明
图1为一个实施例中实时GNSS数据处理方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种实时GNSS数据处理方法,包括以下步骤:
步骤S220,任务管理调度服务器通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,并根据各GNSS数据流所属的观测基准站放入对应的消息列队中等待处理。
其中,GNSS数据流包括卫星探测到的观测数据、广播星历和SSR等数据。任务管理调度服务器采用Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,将GNSS数据流放入接收链表等待处理,数据处理线程池从数据链表中取出数据,经过逻辑处理后,将回馈数据放到发送数据链表中,开启一定量的线程从发送链表中读出各GNSS数据流,并根据各GNSS数据流所属的观测基准站发送到对应的消息列队中。
步骤S240,任务管理调度服务器对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态。
其中,任务管理调度服务器开启线程对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,触发任务调度程序,获取解算服务器的负载状态。
步骤S260,任务管理调度服务器根据解算服务器的负载状态,确定处理GNSS数据流的任务的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
在一个实施例中,任务管理调度服务器根据解算服务器的负载状态,确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务的步骤,包括:任务管理调度服务器根据解算服务器的负载状态,判断当前已有的解算服务器负载是否到达最大负载量;当解算服务器负载到达最大负载量时,新增解算服务器,将新增的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务;当解算服务器负载未到达最大负载量时,从当前已有的解算服务器中确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
在一个实施例中,当解算服务器负载未到达最大负载量时,从当前已有的解算服务器中确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务的步骤,包括:当解算服务器负载未到达最大负载量时,判断当前已有的解算服务器中是否存在任务量最小的解算服务器;当存在任务量最小的解算服务器时,将任务量最小的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务;当不存在任务量最小的解算服务器时,判断当前已有的解算服务器中CPU或者内存使用最少的解算服务器,将CPU或者内存使用最少的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
步骤S280,解算服务器的运行槽获取GNSS数据流和GNSS数据流所属的观测基准站的上一次处理结果。
其中,解算服务器获得GNSS数据流的解算处理任务后,解算服务器为该解算处理任务分配运行槽,运行槽负责启动具体的运行实例,从消息队列拉取GNSS数据流。
分配运行槽原则如下:
固定时间内接收到的数据的集合记为D,D的一个划分表示为{D1,…,Dn},其中Di(i范围为1-n),为一个计算解算处理任务。解算服务器的集合为N{Node1,…Noden}。
a)获取解算服务器每个节点的负载量{L1,…,Ln};
b)获取解算服务器每个节点的处理能力{C1,…,Cn};
c)按节点i的处理能力得出节点i的目标负载量:
为当前节点计算出的负载量,Ci为此节点的处理能力,CK为范围1-n的节点中下标为K的节点,为所有节点的处理能力之和,为所有的节点的负载量之和,n为节点的个数,k和j为计数器,代表1-n个节点某个节点的下标。
在一个实施例中,解算服务器的运行槽获取GNSS数据流所属的观测基准站的上一次处理结果的步骤包括:
解算服务器的运行槽根据GNSS数据流所属的观测基准站的标识,在内存中查找是否存在GNSS数据流所属的观测基准站的上一次处理结果;当内存中有GNSS数据流所属的观测基准站的上一次处理结果时,从内存中获取GNSS数据流所属的观测基准站的上一次处理结果;当内存中没有GNSS数据流所属的观测基准站的上一次处理结果时,向数据库中获取GNSS数据流所属的观测基准站的上一次处理结果。
步骤S300,解算服务器的运行槽根据GNSS数据流和上一次处理结果进行任务处理。
步骤S320,解算服务器的监控线程对任务处理进行监控。
步骤S340,当监控线程接收到运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息。
步骤S360,当监控线程接收到运行槽反馈的任务处理失败消息时,控制运行槽根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息。
其中,跟踪信息中包括该解算处理任务的所有数据,如GNSS数据流、上一次处理结果和任务标识等等,在解算服务器中创建Acker监控线程,跟踪解算处理任务的处理情况。当监控线程接收到运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息和GNSS数据流;当监控线程接收到运行槽反馈的任务处理失败消息时,根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息和GNSS数据流。
当监控线程接收到运行槽反馈的任务处理失败消息时,控制运行槽根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理。运行槽可以重新从缓冲区中获取GNSS数据流和上一次处理结果。
当一个解算处理任务有多个处理单元时,监控线程判断是否接收到解算服务器当前处理单元的任务处理完成消息,如果收到任务处理完成消息,则清空缓冲区缓存的跟踪信息,如果收到任务处理失败消息,则根据定位失败的解算处理任务执行失败的处理单元,重新再次执行,直至收到任务处理完成消息;判断解算处理任务是否执行成功,如果执行成功,则判断下游是否还有处理单元,如果还有处理单元,监控线程将下游处理单元更新为当前处理单元进行解算处理任务监控,如果没有处理单元,则完成此解算处理任务的监控;如果执行失败,则根据定位失败的解算处理任务执行失败的处理单元,重新再次执行。
步骤S380,当解算服务器的运行槽任务处理完成时,输出GNSS数据处理结果。
其中,解算服务器的运行槽输出GNSS数据处理结果后,解算服务器将获得的GNSS数据处理结果存储到内存中以外,还会将GNSS数据处理结果发送至数据库进行存储。
上述实时GNSS数据处理方法,通过任务管理调度服务器通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,并根据各NSS数据流所属的观测基准站放入对应的消息列队中等待处理;任务管理调度服务器对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态;任务管理调度服务器根据解算服务器的负载状态,确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务,解算服务器的运行槽获取GNSS数据流和GNSS数据流所属的观测基准站的上一次处理结果;解算服务器的运行槽根据GNSS数据流和上一次处理结果进行任务处理,获得GNSS数据处理结果;解算服务器的监控线程对任务处理进行监控;当监控线程接收到运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;当监控线程接收到运行槽反馈的任务处理失败消息时,控制运行槽根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息。通过监控线程对任务处理进行监控,保证在任务处理出错的时候,可以迅速找出出错的位置并进行任务重新处理,保证了任务处理的可靠性,解决了容易出现任务处理失败,造成数据缺失的问题。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种实时GNSS数据处理系统,特征在于,系统包括任务管理调度服务器和解算服务器;
任务管理调度服务器用于实时向各观测基准站获取GNSS数据流,并根据各NSS数据流所属的观测基准站放入对应的消息列队中等待处理,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,根据解算服务器的负载状态,确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
解算服务的运行槽用于获取GNSS数据流和GNSS数据流所属的观测基准站的上一次处理结果,根据GNSS数据流和上一次处理结果进行处理,获得GNSS数据处理结果。
解算服务的监控线程用于对任务处理进行监控,当接收到运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;当接收到运行槽反馈的任务处理失败消息时,控制运行槽根据解算处理任务的任务标识,重新根据GNSS数据流和上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息。
其中,任务管理调度服务器包括数据接收模块、消息列队、任务管理调度模块和资源管理模块。数据接收模块用于通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流(GNSS数据流包括卫星探测到的观测数据、广播星历和SSR等数据。),并根据各NSS数据流所属的观测基准站放入对应的任务列队中等待处理;利用Epoll(Epoll全称eventpoll,是linux内核实现IO多路复用(IO multiplexing)的一个实现。IO多路复用的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。)实现多线程非阻塞网络通信框架,它能显著提高程序在大量并发连接中只有少量活跃情况下CPU利用率。实现了对于同时2000多个站点的数据的接收。
消息列队用于存放待处理的GNSS数据流的解算处理任务,消息列队可以通过异步提高系统性能,降低系统耦合性。在使用消息列队之后,接收到的GNSS数据流发送给消息列队,再由消息列队的消费者进程从消息列队中获取GNSS数据流,异步写入数据库。由于消息队列服务器的处理速度快于数据库,消息列队也比数据库有更好的伸缩性,因此响应速度得到大幅改善。
任务管理调度模块用于调度GNSS数据流解算处理任务,当新增解算解算处理任务的时候,任务管理调度模块负责以一定的策略将该新增解算解算处理任务分配至合适的解算服务器;当对某种资源使用率出现大幅度波动或者超过上限的时候,会重新调度。同时在解算服务器出现故障的时候,负责支持任务迁移。
资源管理模块用于采集解算服务器的负载状态,如解算服务器的CPU信息、内存信息和心跳信息等等,进行统计,任务管理调度模块提供原始数据。定期检查心跳,及时将宕机的解算服务器上的任务以一定的调度方法迁移到其他正常的解算服务器上,以最大程度上保证任务的正常进行。
在一个实施例中,任务管理调度服务器还用于:任务管理调度服务器根据解算服务器的负载状态,判断当前已有的解算服务器负载是否到达最大负载量;当解算服务器负载到达最大负载量时,新增解算服务器,将新增的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务;当解算服务器负载未到达最大负载量时,从当前已有的解算服务器中确定处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
在一个实施例中,任务管理调度服务器还用于:当负载未到达最大负载量时,判断当前已有的解算服务器中是否存在任务量最小的解算服务器;当存在任务量最小的解算服务器时,将任务量最小的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务;当不存在任务量最小的解算服务器时,判断当前已有的解算服务器中CPU或者内存使用最少的解算服务器,将CPU或者内存使用最少的解算服务器作为处理GNSS数据流的解算服务器,并向解算服务器分配GNSS数据流的解算处理任务。
在一个实施例中,解算服务器的运行槽将GNSS数据处理结果存储到内存中,并将GNSS数据处理结果发送至数据库进行存储。
在一个实施例中,解算服务器的运行槽获取GNSS数据流所属的观测基准站的上一次处理结果的步骤包括:解算服务器的运行槽根据GNSS数据流所属的观测基准站的标识,在内存中查找是否存在GNSS数据流所属的观测基准站的上一次处理结果;当内存中有GNSS数据流所属的观测基准站的上一次处理结果时,从内存中获取GNSS数据流所属的观测基准站的上一次处理结果;当内存中没有GNSS数据流所属的观测基准站的上一次处理结果时,向数据库中获取GNSS数据流所属的观测基准站的上一次处理结果。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种实时GNSS数据处理方法,其特征在于,所述方法包括:
任务管理调度服务器通过Epoll单线程多路复用的方式实时向各观测基准站获取GNSS数据流,并根据各所述GNSS数据流所属的观测基准站放入对应的消息列队中等待处理;
所述任务管理调度服务器对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态;
所述任务管理调度服务器根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
所述解算服务器的运行槽获取所述GNSS数据流和所述GNSS数据流所属的观测基准站的上一次处理结果;
所述解算服务器的运行槽根据所述GNSS数据流和所述上一次处理结果进行任务处理;
所述解算服务器的监控线程对任务处理进行监控;
当所述监控线程接收到所述运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息;
当所述监控线程接收到所述运行槽反馈的任务处理失败消息时,控制所述运行槽根据所述解算处理任务的任务标识,重新根据所述GNSS数据流和所述上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息;
当所述解算服务器的运行槽解算处理任务处理完成时,输出GNSS数据处理结果。
2.权利要求1所述的方法,其特征在于,所述任务管理调度服务器根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务的步骤,包括:
任务管理调度服务器根据所述解算服务器的负载状态,判断当前已有的所述解算服务器负载是否到达最大负载量;
当所述解算服务器负载到达最大负载量时,新增解算服务器,将新增的所述解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
当所述解算服务器负载未到达最大负载量时,从当前已有的所述解算服务器中确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务。
3.根据权利要求2所述的方法,其特征在于,所述当所述解算服务器负载未到达最大负载量时,从当前已有的所述解算服务器中确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务的步骤,包括:
当所述解算服务器负载未到达最大负载量时,判断当前已有的所述解算服务器中是否存在任务量最小的解算服务器;
当存在任务量最小的解算服务器时,将任务量最小的解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
当不存在任务量最小的解算服务器时,判断所述当前已有的解算服务器中CPU或者内存使用最少的解算服务器,将CPU或者内存使用最少的解算服务器作为处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述GNSS数据处理结果存储到内存中,并将所述GNSS数据处理结果发送至数据库进行存储。
5.根据权利要求4所述的方法,其特征在于,所述解算服务器的运行槽获取所述GNSS数据流所属的观测基准站的上一次处理结果的步骤包括:
所述解算服务器的运行槽根据所述GNSS数据流所属的观测基准站的标识,在内存中查找是否存在所述GNSS数据流所属的观测基准站的上一次处理结果;
当所述内存中有所述GNSS数据流所属的观测基准站的上一次处理结果时,从所述内存中获取所述GNSS数据流所属的观测基准站的上一次处理结果;
当所述内存中没有所述GNSS数据流所属的观测基准站的上一次处理结果时,向所述数据库中获取所述GNSS数据流所属的观测基准站的上一次处理结果。
6.一种实时GNSS数据处理系统,特征在于,所述系统包括任务管理调度服务器和解算服务器;
所述任务管理调度服务器用于实时向各观测基准站获取GNSS数据流,并根据各所述NSS数据流所属的观测基准站放入对应的消息列队中等待处理,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,对每个消息列队进行监听,当监听到消息列队中有GNSS数据流时,获取解算服务器的负载状态,根据所述解算服务器的负载状态,确定处理所述GNSS数据流的解算服务器,并向所述解算服务器分配所述GNSS数据流的解算处理任务;
所述解算服务的运行槽用于获取所述GNSS数据流和所述GNSS数据流所属的观测基准站的上一次处理结果,根据所述GNSS数据流和所述上一次处理结果进行处理,当解算处理任务处理完成时,输出GNSS数据处理结果;
所述解算服务的监控线程用于对任务处理进行监控,当接收到所述运行槽反馈的任务处理完成消息时,清空缓冲区缓存的跟踪信息和所述GNSS数据流;当接收到所述运行槽反馈的任务处理失败消息时,控制所述运行槽根据所述解算处理任务的任务标识,重新根据所述GNSS数据流和所述上一次处理结果进行处理,继续对任务处理进行监控,直至获取到任务处理完成消息,清空缓冲区缓存的跟踪信息和所述GNSS数据流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334676.4A CN113254194B (zh) | 2021-03-29 | 2021-03-29 | 一种实时gnss数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334676.4A CN113254194B (zh) | 2021-03-29 | 2021-03-29 | 一种实时gnss数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254194A true CN113254194A (zh) | 2021-08-13 |
CN113254194B CN113254194B (zh) | 2023-03-28 |
Family
ID=77181194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110334676.4A Active CN113254194B (zh) | 2021-03-29 | 2021-03-29 | 一种实时gnss数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254194B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114282271A (zh) * | 2021-12-22 | 2022-04-05 | 国汽大有时空科技(安庆)有限公司 | 基于gnss的数据实时处理方法、系统及存储介质 |
CN116225668A (zh) * | 2023-05-08 | 2023-06-06 | 中国科学院空天信息创新研究院 | 高轨多星定位任务组合调度方法、装置、设备和介质 |
CN116859419A (zh) * | 2023-07-11 | 2023-10-10 | 中国科学院空天信息创新研究院 | 一种基于分布式架构的卫星导航实时数据流管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423121A (zh) * | 2017-05-02 | 2017-12-01 | 千寻位置网络有限公司 | Gnss精密后处理任务的调度系统及方法 |
WO2018121738A1 (zh) * | 2016-12-30 | 2018-07-05 | 北京奇虎科技有限公司 | 流数据任务的处理方法和装置 |
CN108363073A (zh) * | 2018-02-07 | 2018-08-03 | 重庆市地理信息中心 | Gnss地基增强服务管理系统 |
CN110411331A (zh) * | 2019-07-18 | 2019-11-05 | 广州吉欧电子科技有限公司 | 一种gnss形变监测系统及方法 |
-
2021
- 2021-03-29 CN CN202110334676.4A patent/CN113254194B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121738A1 (zh) * | 2016-12-30 | 2018-07-05 | 北京奇虎科技有限公司 | 流数据任务的处理方法和装置 |
CN107423121A (zh) * | 2017-05-02 | 2017-12-01 | 千寻位置网络有限公司 | Gnss精密后处理任务的调度系统及方法 |
CN108363073A (zh) * | 2018-02-07 | 2018-08-03 | 重庆市地理信息中心 | Gnss地基增强服务管理系统 |
CN110411331A (zh) * | 2019-07-18 | 2019-11-05 | 广州吉欧电子科技有限公司 | 一种gnss形变监测系统及方法 |
Non-Patent Citations (1)
Title |
---|
蒋科材: "实时GNSS 数据流管理平台的实现及应用", 《测绘通报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114282271A (zh) * | 2021-12-22 | 2022-04-05 | 国汽大有时空科技(安庆)有限公司 | 基于gnss的数据实时处理方法、系统及存储介质 |
CN116225668A (zh) * | 2023-05-08 | 2023-06-06 | 中国科学院空天信息创新研究院 | 高轨多星定位任务组合调度方法、装置、设备和介质 |
CN116225668B (zh) * | 2023-05-08 | 2023-07-21 | 中国科学院空天信息创新研究院 | 高轨多星定位任务组合调度方法、装置、设备和介质 |
CN116859419A (zh) * | 2023-07-11 | 2023-10-10 | 中国科学院空天信息创新研究院 | 一种基于分布式架构的卫星导航实时数据流管理方法 |
CN116859419B (zh) * | 2023-07-11 | 2024-04-30 | 中国科学院空天信息创新研究院 | 一种基于分布式架构的卫星导航实时数据流管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113254194B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254194B (zh) | 一种实时gnss数据处理方法和系统 | |
US20120297249A1 (en) | Platform for Continuous Mobile-Cloud Services | |
US11255976B2 (en) | Method for operating a correction service system and correction service system | |
US20150154262A1 (en) | Platform for Continuous Graph Update and Computation | |
CN105828105A (zh) | 一种基于分布式环境的视频转码系统及视频转码方法 | |
US20090310531A1 (en) | Airborne Communication Network | |
AU2018357856B2 (en) | Managing a computing cluster using time interval counters | |
WO2022247440A1 (zh) | 基于5g核心网的低轨卫星的寻呼方法、系统、装置及介质 | |
EP2488827A1 (en) | System and method for compensating for faulty measurements | |
CN108810097B (zh) | Web海量实时采集处理NMEA数据的方法及系统 | |
Sharvari et al. | A study on modern messaging systems-kafka, rabbitmq and nats streaming | |
US20220053045A1 (en) | Systems and methods for providing real-time streaming data processing at edge servers | |
CN104077188A (zh) | 一种用于任务调度的方法和装置 | |
US20230047692A1 (en) | Cloud-based systems for optimized multi-domain processing of input problems using a serverless request management engine native to a server cloud infrastructure | |
CN114355395A (zh) | 一种终端定位方法、装置、设备及存储介质 | |
CN111917814A (zh) | 数据发布、订阅方法、装置、设备、系统及可读存储介质 | |
US20160179627A1 (en) | Method and system for checkpointing a global state of a distributed system | |
Tsenos et al. | Amesos: a scalable and elastic framework for latency sensitive streaming pipelines | |
US20180248944A1 (en) | System and method for migrating an agent server to an agent client device | |
US9027035B2 (en) | Non real-time metrology data management | |
CN111158033B (zh) | 基于gnss的差分定位方法、装置、设备和存储介质 | |
KR101639912B1 (ko) | 철강 공정 미들웨어의 이벤트 관리 시스템 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN112948207A (zh) | 信息传递方法、装置、电子设备和介质 | |
Al Arafat et al. | Compositional mixed-criticality systems with multiple executions and resource-budgets model |
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 |