一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

队列堵塞判断方法和存储介质与流程

2021-10-20 01:20:00 来源:中国专利 TAG:堵塞 服务器 多个 队列 定位


1.本发明涉及服务器堵塞处理技术领域,尤其涉及一种服务器与多个定位设备通信时的队列堵塞判断方法和存储介质。


背景技术:

2.随着北斗车载定位设备日益普及,连接到服务器上的北斗车载定位设备数量剧增。为了提高北斗车载定位设备的性能,服务器与北斗车载定位设备之间的定位信息请求采用异步响应的通信方式,具体地:服务器接收到北斗车载定位设备发送的定位信息后,先响应北斗车载定位设备,然后再将北斗车载定位设备的定位信息放入队列中排队等候,然后按顺序依次处理队列中的多个定位信息。当连接到服务器的北斗车载定位设备数量过多时,服务器容易因排队等候的定位信息过多而导致队列堵塞。在服务器队列出现堵塞时,需要自动对定位信息进行限流或通知开发运维人员对服务器进行扩容。
3.目前判断服务器队列堵塞一般采用漏斗算法:配置好队列上限阈值,超过队列上限阈值就判定为堵塞,从而对定位信息进行限流。由于北斗车载定位设备在没信号时会把定位信息先暂存起来,待信号良好时再把暂存的所有定位信息补传到服务器,若补传的定位信息数量较多,则队列内的定位信息的数量会突然增大至超过队列上限阈值,在此情况下,漏斗算法会判定为堵塞,但是服务器实际上并没有发生真正意义上的堵塞,短时间内可以自行消除堵塞情况,无需进行限流或者扩容。


技术实现要素:

4.本发明所要解决的技术问题是提供一种服务器队列堵塞判断方法,其判断准确性较高。
5.发明人经过研究发现,由于个别北斗车载定位设备补传定位信息可能会导致队列内的定位信息的数量会突然增大至超过队列上限阈值,漏斗算法会判定为堵塞,从而对定位信息进行限流或者通知开发运维人员对服务器进行扩容。但是,在这种情况下,服务器实际上并没有发生真正意义上的堵塞,在短时间内就可以自行消除堵塞情况,属于假堵塞,无需对定位信息进行限流或者对服务器进行扩容。北斗车载定位设备会定时生成包含有本机当前所在的位置信息以及当前定位时间的定位信息,然后把定位信息发给服务器,从而使服务器能够根据该北斗车载定位设备所上报的多个定位信息确定车辆的行驶轨迹。服务器接收到定位信息后会将其放入到队列中排队等候处理。在真堵塞的情况下,定位信息在队列中的等候时长会比正常情况下的等候时长更长,如此则服务器处理该定位信息时,服务器的当前时间已经比该定位信息的定位时间迟了很久。在通信信号不佳造成假堵塞的情况下,定位信息在车载设备处等待至信号良好时才发送给服务器,如此则服务器处理该定位信息时也已经比定位时间迟了很久。可见,不管发生了真堵塞还是假堵塞,都会造成服务器处理定位信息时的当前时间已经比定位时间迟了很久。但是,在一定的时间段内,通常只有少数北斗车载定位设备出现通信信号不佳,也就是说,在不发生真堵塞的情况下的一定的
时间段内,只会有少数北斗车载定位设备发出的定位信息被服务器处理时会比定位时间迟了很久,这部分北斗车载定位设备在北斗车载定位设备总数中的占比很小。而在发生真堵塞的情况下,一定的时间段内,大部分的北斗车载定位设备发出的定位信息都需要在队列中等候很久才能被服务器处理,如此则大部分北斗车载定位设备发出的定位信息被服务器处理时会比定位时间迟了很久,这部分北斗车载定位设备在北斗车载定位设备总数中的占比很大。因此,本发明的思路是,在一定的时间段内,对被服务器处理时晚于定位时间很久的定位信息,统计发出这些定位信息的北斗车载定位设备的数量,从而根据这些北斗车载定位设备的数量在北斗车载定位设备总数中的占比,判断出是属于假堵塞还是属于真堵塞。
6.为了解决上述技术问题,本发明的服务器与多个定位设备通信时的队列堵塞判断方法,若满足堵塞条件,则判定服务器队列处于堵塞状态,上述堵塞条件包括:各个定位设备当中,达到预设数量的定位设备存在定位信息等待处理超过预设时长的现象。
7.可选地,上述堵塞条件还包括队列中的定位信息的数量超过队列上限阈值,若达到预设数量的定位设备存在上述现象且队列中的定位信息的数量超过队列上限阈值,则判定服务器队列处于堵塞状态。
8.可选地,在从队列中取出定位信息以进行处理时,若判断出该定位信息的生成时间早于当前时间超过预设时长,则认为发出该定位信息的定位设备存在定位信息等待处理超过预设时长的现象。
9.可选地,若判定服务器队列处于堵塞的状态且判断出上述定位设备的超时次数超过预设次数阈值,则对当前取出的定位信息作限流处理。
10.可选地,如上所述,对当前取出的定位信息作限流处理,具体地,若符合预设的随机条件,则抛弃当前取出的定位信息,不作处理。
11.可选地,上述堵塞条件具体地:在预设长度的时间区间内,各个定位设备当中,达到预设数量的定位设备存在所述现象。
12.可选地,定时判断是否满足所述堵塞条件。
13.可选地,若判断出服务器队列处于堵塞状态,则发出堵塞告警信息。
14.可选地,所述预设数量体现为占定位设备总数的比例。
15.一种计算机可读存储介质,其上存储有可执行的计算机程序,所述计算机程序被执行以实现如上所述的服务器与多个定位设备通信时的队列堵塞判断方法。
16.该队列堵塞判断方法,在各个定位设备当中,达到预设数量的定位设备存在定位信息等待处理超过预设时长的现象时,才判定服务器队列处于堵塞状态,那么,在服务器因定位信息补传而出现假堵塞时,不会把服务器队列判定为堵塞。如此一来,提高了堵塞判断的准确性。
附图说明
17.图1是一种行车定位服务系统的系统框图;
18.图2是服务器处理定位信息的流程示意图;
19.图3是服务器定时判断是否堵塞的流程示意图。
具体实施方式
20.以下结合具体实施方式对本发明创造作进一步详细说明。
21.如图1所示的行车定位服务系统,包括服务器以及通信连接服务器的多个北斗车载定位设备,这些北斗车载定位设备分别安装在不同的车辆上。服务器包括处理器和计算机可读存储介质,该计算机可读存储介质存储有可执行的计算机程序,上述处理器执行该计算机程序从而实现服务器的功能。
22.上述各个北斗车载定位设备会定时生成包含有本机当前所在位置信息以及当前定位时间的定位信息,然后把定位信息发送给服务器。服务器接收到定位信息后会将其放入到队列中排队等候处理。若接收的定位信息过多,服务器处理不过来,则会产生队列堵塞的情况。在发生堵塞的情况下,服务器需要进行限流或者请求运维人员对服务器进行扩容,避免服务器因超负荷而奔溃。因此,服务器需要进行堵塞判断。
23.现有的堵塞判断方式是为队列设置上限阈值,一旦队列内的定位信息数量超过了队列上限阈值,则判定为堵塞。但是,发明人发现,在实际场景中,车辆在行驶过程中,可能会驶入一些通信信号不佳的路段,使得车上安装的北斗车载定位设备无法把定位信息发送给服务器,在通信信号不佳的期间内,这些北斗车载定位设备会把期间内生成的定位信息暂存在本机中,等待信号恢复良好再发送给服务器。由于个别北斗车载定位设备补传定位信息可能会导致队列内的定位信息数量突然增大至超过队列上限阈值,单纯依靠队列上限阈值这一堵塞条件来进行堵塞判断的话,这种情况会被判定为堵塞。但是,在这种情况下,服务器实际上并没有发生真正意义上的堵塞,在短时间内就可以自行消除堵塞情况,属于假堵塞,无需对定位信息进行限流或者对服务器进行扩容。发明人经过思考想到,在一定的时间段内,通常只有少数北斗车载定位设备出现通信信号不佳,也就是说,在不发生真堵塞的情况下的一定的时间段内,只会有少数北斗车载定位设备发出的定位信息被服务器处理时会比定位时间迟了很久,意味着,在全部北斗车载定位设备当中,只有少数的北斗车载定位设备的定位信息因信号不佳等待发送而导致其等待处理时长很长。而在发生真堵塞的情况下,一定的时间段内,大部分的北斗车载定位设备发出的定位信息都需要在队列中等候很久才能被服务器处理,如此则大部分北斗车载定位设备发出的定位信息被服务器处理时会比定位时间迟了很久,意味着,在全部北斗车载定位设备当中,大部分北斗车载定位设备的定位信息因需在队列中等候处理而导致其等待处理时长很长。因此,本发明的思路是,在一定的时间段内,对存在定位信息等待处理时长很长的现象的北斗车载定位设备,统计其数量,从而根据这些北斗车载定位设备的数量占北斗车载定位设备总数的比例,区分出是真堵塞还是假堵塞。
24.基于上述思路,需对存在定位信息等待处理时长很长的现象的北斗车载定位设备进行数量统计,具体统计方式如下:
25.如图2所示,服务器从队列中取出排队在先的定位信息之后,提取该定位信息的定位时间,判断其定位时间是否早于当前时间超过预设时长30分钟。若定位时间早于当前时间超过预设时长30分钟,则认为发出该定位信息的北斗车载定位设备存在定位信息等待处理超过预设时长的现象。服务器中设有redis数据库,在确定北斗车载定位设备存在定位信息等待处理超过预设时长的现象之后,服务器就查询redis数据库中是否存在以发出上述定位信息的北斗车载定位设备的设备号为键的键值对。若不存在,服务器则在redis数据库
中创建对应的键值对,键值对以该北斗车载定位设备的设备号为键,以该北斗车载定位设备的定位信息等待处理超过预设时长30分钟这样的超时事件发生的次数为值。虽然出现信号不佳的定位设备通常是少数,但若时间长度足够长,各个定位设备可能会交错地出现信号不佳,统计起来可能会超过预设数量,但这种情况仍只是假堵塞而已。在真正堵塞的情况下,短时间段内就会有大部分定位设备存在上述现象。因此,本实施例增加时间长度限制条件,进一步确保不会把假堵塞判断为真堵塞。本实施例通过为上述键值对设置过期时间为30分钟来增加时间长度限制条件,若键值对的键值超过30分钟没有更新,服务器则删除该键值对。如此,redis数据库中只会保存距离当前时间30分钟以内更新的键值对,在进行键值对的数量统计时,就是统计30分钟以内更新的键值对,从而避免对在很久之前出现上述现象的定位设备进行统计。若redis数据库中存在以发出上述定位信息的北斗车载定位设备的设备号为键的键值对,则令该键值对的键值加1。通过键值对的方式来统计存在定位信息等待处理超过预设时长的现象的北斗车载定位设备的数量。
26.统计了存在上述现象的北斗车载定位设备的数量之后,服务器就可以进行对应的堵塞判断了。在本实施例中,堵塞判断流程是定时触发的,而在其他实施例中,可以改为在处理定位信息时,若定位信息的定位时间早于服务器当前时间超过预设时长30分钟,则触发堵塞判断流程。本实施例之所以把堵塞判断流程设置为定时触发而不是在处理定位信息时触发,是因为键值对数量扫描是比较耗时的操作,虽然在处理定位信息时触发堵塞判断流程可以更及时地确定堵塞状态,但在堵塞或者定位信息补传数量较多的情况下,服务器处理的定位信息的定位时间早于当前时间超过预设时长30分钟的概率会变大,如此则会频繁进行键值对数量扫描,这样会大大加重服务器的负荷,影响服务器的业务处理。把堵塞判断流程设置为定时触发,最坏的情况也只是比出现堵塞时晚了设定的间隔时长才检测到队列堵塞,只要时间间隔不长就不会对服务器的业务处理造成很大影响。
27.如图3所示,每隔3分钟触发一次堵塞判断流程,具体地:服务器先判断redis数据库中的键值对的数量占北斗车载定位设备总数的比例是否超过预设比例10%,若是,则意味着满足堵塞条件“各个北斗车载定位设备当中,达到预设数量的定位设备存在定位信息等待处理超过预设时长的现象”。服务器接着判断队列中的定位信息的数量是否超过队列上限阈值,该队列上限阈值根据服务器的处理能力来设定。若是,则判定出服务器队列当前处于堵塞状态,故把全局堵塞标志位设为真,并发送堵塞告警信息给运维人员。
28.在服务器队列处于堵塞状态的情况下,可以进行限流处理以减轻服务器的处理压力,从而使队列能够尽快恢复正常。本实施例中,服务器是在对定位信息进行处理之前执行限流流程,根据限流流程的执行结果来确定是否正常处理当前的定位信息。限流流程如下:如图2所示,在对存在定位信息等待处理超过预设时长的现象的北斗车载定位设备进行数量统计之后,服务器判断全局堵塞标志位是否为真,若是,则进一步判断键值对的键值(键值等于该键值对对应的北斗车载定位设备的超时次数)是否超过预设次数阈值1000。当键值对的键值超过了1000,说明这个北斗车载定位设备的定位信息数量很多,为了让队列能够尽快恢复正常,对于定位信息数量过多的这个北斗车载定位设备,服务器对其定位信息进行随机抛弃,如此则服务器的工作量会相应减少,从而使得队列中的定位信息的处理效率相应提高,从而使队列能够尽快恢复正常。随机抛弃过程具体地:若键值超过了预设次数阈值1000,服务器则随机生成一个0至99的随机数,若该随机数小于49,则意味着符合预设
的随机条件,抛弃该定位信息,不作处理,否则正常处理该定位信息。
29.如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜