车辆上报事件的处理方法、装置、服务器及存储介质与流程

未命名 08-12 阅读:134 评论:0


1.本技术涉及车辆技术领域,特别涉及一种车辆上报事件的处理方法、装置、服务器及存储介质。


背景技术:

2.tsp(telematics service provider,汽车远程服务提供商)平台会接收车辆上报的车况事件,通知事件及周期事件,用来更新车辆状态或位置等信息,由于车辆较多,且上报事件频率较高,相关技术通常是需要多个并行线程去处理这些上报事件。
3.然而在上传车况事件时同一个车辆的数据可能会存在不同的队列中,在进行数据处理时,无法保证消费的有序性,容易造成车辆状态或位置信息与实际不符,无法在tsp平台正确显示当前车辆状态。


技术实现要素:

4.本技术提供一种车辆上报事件的处理方法、装置、服务器及存储介质,以解决相关技术通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能有序地被处理,容易造成车辆的实时状态有误等问题。
5.本技术第一方面实施例提供一种车辆上报事件的处理方法,所述方法应用于服务器,所述服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,包括以下步骤:获取一个或多个车辆上报的事件和车辆标识;根据所述车辆标识确定拉取所述事件的内存队列,并将所述事件拉取到所述车辆标识对应的内存队列中,并识别同一消费服务中与所述内存队列对应的线程;利用与所述内存队列对应的线程依次处理所述内存队列中的事件。
6.可选地,在本技术的一个实施例中,所述根据所述车辆标识确定拉取所述事件的内存队列,包括:计算所述车辆标识的第一哈希值;根据所述第一哈希值对所述消费服务中部署的内存队列的数量进行取模,得到所述车辆标识对应的内存队列。
7.可选地,在本技术的一个实施例中,所述计算所述车辆标识的第一哈希值,包括:利用fnv-1哈希函数计算所述车辆标识的第一哈希值。
8.可选地,在本技术的一个实施例中,所述每个消费服务中还部署有一个或多个内存分区。
9.可选地,在本技术的一个实施例中,所述将所述事件拉取到所述车辆标识对应的内存队列中,包括:从所述内存分区中拉取事件到所述车辆标识对应的内存队列中。
10.可选地,在本技术的一个实施例中,在从所述内存分区中拉取事件到所述车辆标识对应的内存队列中之前,还包括:计算所述车辆标识的第二哈希值;根据所述第二哈希值对所述消费服务中部署的内存分区的数量进行取模,得到所述车辆标识对应的内存分区。
11.可选地,在本技术的一个实施例中,所述计算所述车辆标识的第二哈希值,包括:利用乘法和旋转的哈希算法计算所述车辆标识的第二哈希值。
12.本技术第二方面实施例提供一种车辆上报事件的处理装置,所述装置应用于服务器,所述服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,其中,所述装置包括:获取模块,用于获取一个或多个车辆上报的事件和车辆标识;确定模块,用于根据所述车辆标识确定拉取所述事件的内存队列,并将所述事件拉取到所述车辆标识对应的内存队列中,并识别同一消费服务中与所述内存队列对应的线程;处理模块,用于利用与所述内存队列对应的线程依次处理所述内存队列中的事件。
13.可选地,在本技术的一个实施例中,所述确定模块进一步用于计算所述车辆标识的第一哈希值;根据所述第一哈希值对所述消费服务中部署的内存队列的数量进行取模,得到所述车辆标识对应的内存队列。
14.可选地,在本技术的一个实施例中,所述确定模块进一步用于利用fnv-1哈希函数计算所述车辆标识的第一哈希值。
15.可选地,在本技术的一个实施例中,所述每个消费服务中还部署有一个或多个内存分区。
16.可选地,在本技术的一个实施例中,所述确定模块,进一步用于从所述内存分区中拉取事件到所述车辆标识对应的内存队列中。
17.可选地,在本技术的一个实施例中,还包括:计算模块,用于在从所述内存分区中拉取事件到所述车辆标识对应的内存队列中之前,计算所述车辆标识的第二哈希值;根据所述第二哈希值对所述消费服务中部署的内存分区的数量进行取模,得到所述车辆标识对应的内存分区。
18.可选地,在本技术的一个实施例中,所述计算模块,进一步用于利用乘法和旋转的哈希算法计算所述车辆标识的第二哈希值。
19.本技术第三方面实施例提供一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的车辆上报事件的处理方法。
20.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的车辆上报事件的处理方法。
21.由此,本技术至少具有如下有益效果:
22.本技术实施例可以获取一个或多个车辆上报的事件和车辆标识;根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并利用与该队列对应的线程处依次处理内存队列中的事件,在多线程处理的同时,能有序地处理车辆上报的事件,保证每辆车的实时状态正确。由此,解决了相关技术仅通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能被有序地处理,容易造成车辆的实时状态有误等问题。
23.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
24.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
25.图1为根据本技术实施例提供的一种车辆上报事件的处理方法的流程图;
26.图2为根据本技术一个实施例提供的车辆上报事件的流转过程的示例图;
27.图3为根据本技术实施例提供的一种车辆上报事件的处理装置的方框示意图;
28.图4为根据本技术实施例的服务器的结构示意图。
具体实施方式
29.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
30.下面参考附图描述本技术实施例的车辆上报事件的处理方法、装置、服务器及存储介质。针对上述背景技术中提到的问题,本技术提供了一种车辆上报事件的处理方法,该方法应用于服务器,服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,在该方法中,通过获取一个或多个车辆上报的事件和车辆标识;根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并利用与该队列对应的线程处依次处理内存队列中的事件,在多线程处理的同时,能有序地处理车辆上报的事件,保证每辆车的实时状态正确。由此,解决了相关技术仅通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能有序地被处理,容易造成车辆的实时状态有误等问题。
31.具体而言,图1为本技术实施例所提供的一种车辆上报事件的处理方法的流程示意图。
32.如图1所示,该车辆上报事件的处理方法包括以下步骤:
33.在步骤s101中,获取一个或多个车辆上报的事件和车辆标识。
34.其中,车辆标识可以包括车辆vin码、车辆编号等。
35.可以理解的是,车辆上报的事件可以用来更新车辆状态和位置等信息,本技术实施例可以获取一个或多个车辆上报的事件和车辆标识,基于车辆标识确定拉取事件的内存队列,以保证同一车辆上报的事件能被有序地处理。
36.在步骤s102中,根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并识别同一消费服务中与内存队列对应的线程。
37.在本技术的一个实施例中,根据车辆标识确定拉取事件的内存队列,包括:计算车辆标识的第一哈希值;根据第一哈希值对消费服务中部署的内存队列的数量进行取模,得到车辆标识对应的内存队列。
38.本技术实施例可以部署有一个或多个消费服务,每个消费服务中可以部署有一个或多个内存队列,在获取到车辆上报的事件后,确定车辆标识对应的内存队列,并将车辆上报的事件放入该内存队列中。
39.具体而言,本技术实施例可以利用fnv-1哈希函数计算车辆标识的第一哈希值,并对创建的内存队列的数量进行取模运算得到队列编号,同一个车辆标识经过计算后得到的队列编号是相同的,并根据车辆标识对应的队列编号确定内存队列。在实际执行过程中,每个消费服务中还部署有一个或多个内存分区,本技术实施例可以从内存分区中拉取事件到车辆标识对应的内存队列中,以保证同一车辆上报的事件能被有序地处理,且正确地显示
车辆实时状态。
40.在步骤s103中,利用与内存队列对应的线程依次处理内存队列中的事件。
41.在本技术实施例中,每一个内存队列有唯一的一个编号,且有一个相同编号的线程会处理其中的消息,因此本技术实施例在将事件拉取到车辆标识对应的内存队列中后,可以利用与该队列对应的线程处理车辆上报的事件,在多线程处理的同时,能有序地处理车辆上报的事件,保证每辆车实时状态的正确性。
42.在本技术的一个实施例中,在从内存分区中拉取事件到车辆标识对应的内存队列中之前,还包括:计算车辆标识的第二哈希值;根据第二哈希值对消费服务中部署的内存分区的数量进行取模,得到车辆标识对应的内存分区。
43.本技术实施例可以将车辆上报的事件会放入kafka中,在事件发送到kafka时,可以利用自定义的kafka的分发策略,即利用乘法和旋转的哈希算法(murmur2)计算车辆标识的第二哈希值,并对消费服务中部署的内存分区的数量进行取模,得到分区参数key值,kafka会将相同key的事件发送到同一个内存分区中,在同一个分区中消息是有序的,每个车辆标识经过相同的算法后得到的分区参数key值是相同的,从而保证同一辆车的上报事件将会发送到同一个内存分区中,以保证发送到kafka中的同一辆车的事件是有序的。
44.综上,本技术实施例利用kafka作为消息队列,部署生产者服务,接收到车辆上报的事件后,发送到kafka中,部署消费服务,创建多个内存队列,拉取kafka中的事件后,放入内存队列中,待对应的线程处理。如图2所示的车辆上报事件的流转过程,同一辆车的事件会被按序发送到kafka中,之后拉取到事件后,也会有序地放入内存队列中,同一辆车只会对应一个内存队列。而且每一个消费服务中,会有多个线程处理消息,而消费服务也可以部署多个,这样可以并行处理多个分区中的事件,加大处理能力。
45.根据本技术实施例提出的车辆上报事件的处理方法,通过获取一个或多个车辆上报的事件和车辆标识;根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并利用与该队列对应的线程处依次处理内存队列中的事件,在多线程处理的同时,能有序地处理车辆上报的事件,保证每辆车的实时状态正确。由此,解决了相关技术仅通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能被有序地处理,容易造成车辆的实时状态有误等问题。
46.其次参照附图描述根据本技术实施例提出的车辆上报事件的处理装置,该装置应用于服务器,服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列。
47.图3是本技术实施例的车辆上报事件的处理装置的方框示意图。
48.如图3所示,该车辆上报事件的处理装置10包括:获取模块100、确定模块200和处理模块300。
49.其中,获取模块100用于获取一个或多个车辆上报的事件和车辆标识;确定模块200用于根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并识别同一消费服务中与内存队列对应的线程;处理模块300用于利用与内存队列对应的线程依次处理内存队列中的事件。
50.在本技术的一个实施例中,确定模块200进一步用于计算车辆标识的第一哈希值;根据第一哈希值对消费服务中部署的内存队列的数量进行取模,得到车辆标识对应的内存
队列。
51.在本技术的一个实施例中,确定模块200进一步用于利用fnv-1哈希函数计算车辆标识的第一哈希值。
52.可选地,在本技术的一个实施例中,每个消费服务中还部署有一个或多个内存分区,确定模块200进一步用于从内存分区中拉取事件到车辆标识对应的内存队列中。
53.在本技术的一个实施例中,本技术实施例的装置10还包括:计算模块。
54.其中,计算模块用于在从内存分区中拉取事件到车辆标识对应的内存队列中之前,计算车辆标识的第二哈希值;根据第二哈希值对消费服务中部署的内存分区的数量进行取模,得到车辆标识对应的内存分区。
55.在本技术的一个实施例中,计算模块进一步用于利用乘法和旋转的哈希算法计算车辆标识的第二哈希值。
56.需要说明的是,前述对车辆上报事件的处理方法实施例的解释说明也适用于该实施例的车辆上报事件的处理装置,此处不再赘述。
57.根据本技术实施例提出的车辆上报事件的处理装置,通过获取一个或多个车辆上报的事件和车辆标识;根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并利用与该队列对应的线程处依次处理内存队列中的事件,在多线程处理的同时,能有序地处理车辆上报的事件,保证每辆车的实时状态正确。由此,解决了相关技术仅通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能被有序地处理,容易造成车辆的实时状态有误等问题。
58.图4为本技术实施例提供的服务器的结构示意图。该服务器可以包括:
59.存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序。
60.处理器402执行程序时实现上述实施例中提供的车辆上报事件的处理方法。
61.进一步地,服务器还包括:
62.通信接口403,用于存储器401和处理器402之间的通信。
63.存储器401,用于存放可在处理器402上运行的计算机程序。
64.存储器401可能包含高速ram(random access memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
65.如果存储器401、处理器402和通信接口403独立实现,则通信接口403、存储器401和处理器402可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
66.可选的,在具体实现上,如果存储器401、处理器402及通信接口403,集成在一块芯片上实现,则存储器401、处理器402及通信接口403可以通过内部接口完成相互间的通信。
67.处理器402可能是一个cpu(central processing unit,中央处理器),或者是asic(application specific integrated circuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
68.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的车辆上报事件的处理方法。
69.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
70.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
71.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
72.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
73.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
74.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种车辆上报事件的处理方法,其特征在于,所述方法应用于服务器,所述服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,其中,所述方法包括以下步骤:获取一个或多个车辆上报的事件和车辆标识;根据所述车辆标识确定拉取所述事件的内存队列,并将所述事件拉取到所述车辆标识对应的内存队列中,并识别同一消费服务中与所述内存队列对应的线程;利用与所述内存队列对应的线程依次处理所述内存队列中的事件。2.根据权利要求1所述的车辆上报事件的处理方法,其特征在于,所述根据所述车辆标识确定拉取所述事件的内存队列,包括:计算所述车辆标识的第一哈希值;根据所述第一哈希值对所述消费服务中部署的内存队列的数量进行取模,得到所述车辆标识对应的内存队列。3.根据权利要求2所述的车辆上报事件的处理方法,其特征在于,所述计算所述车辆标识的第一哈希值,包括:利用fnv-1哈希函数计算所述车辆标识的第一哈希值。4.根据权利要求1所述的车辆上报事件的处理方法,其特征在于,所述每个消费服务中还部署有一个或多个内存分区。5.根据权利要求4所述的车辆上报事件的处理方法,其特征在于,所述将所述事件拉取到所述车辆标识对应的内存队列中,包括:从所述内存分区中拉取事件到所述车辆标识对应的内存队列中。6.根据权利要求5所述的车辆上报事件的处理方法,其特征在于,在从所述内存分区中拉取事件到所述车辆标识对应的内存队列中之前,还包括:计算所述车辆标识的第二哈希值;根据所述第二哈希值对所述消费服务中部署的内存分区的数量进行取模,得到所述车辆标识对应的内存分区。7.根据权利要求6所述的车辆上报事件的处理方法,其特征在于,所述计算所述车辆标识的第二哈希值,包括:利用乘法和旋转的哈希算法计算所述车辆标识的第二哈希值。8.一种车辆上报事件的处理装置,其特征在于,所述装置应用于服务器,所述服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,其中,所述装置包括:获取模块,用于获取一个或多个车辆上报的事件和车辆标识;确定模块,用于根据所述车辆标识确定拉取所述事件的内存队列,并将所述事件拉取到所述车辆标识对应的内存队列中,并识别同一消费服务中与所述内存队列对应的线程;处理模块,用于利用与所述内存队列对应的线程依次处理所述内存队列中的事件。9.一种服务器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-7任一项所述的车辆上报事件的处理方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器
执行,以用于实现如权利要求1-7任一项所述的车辆上报事件的处理方法。

技术总结
本申请涉及车辆技术领域,特别涉及一种车辆上报事件的处理方法、装置、服务器及存储介质,其中,方法应用于服务器,服务器部署有一个或多个消费服务,每个消费服务中部署有一个或多个内存队列,包括以下步骤:获取一个或多个车辆上报的事件和车辆标识;根据车辆标识确定拉取事件的内存队列,并将事件拉取到车辆标识对应的内存队列中,并识别同一消费服务中与内存队列对应的线程;利用与内存队列对应的线程依次处理内存队列中的事件。由此,解决了相关技术仅通过多个线程并发处理车辆上报的事件,无法保证车辆上报的事件能有序地被处理,容易造成车辆的实时状态有误等问题。造成车辆的实时状态有误等问题。造成车辆的实时状态有误等问题。


技术研发人员:徐志强
受保护的技术使用者:奇瑞汽车股份有限公司
技术研发日:2023.05.11
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐