CN115766689A - web服务端与无人机探测及反制设备双向通信的方法 - Google Patents
web服务端与无人机探测及反制设备双向通信的方法 Download PDFInfo
- Publication number
- CN115766689A CN115766689A CN202310036125.9A CN202310036125A CN115766689A CN 115766689 A CN115766689 A CN 115766689A CN 202310036125 A CN202310036125 A CN 202310036125A CN 115766689 A CN115766689 A CN 115766689A
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- switch
- bound
- middleware
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000001514 detection method Methods 0.000 title claims abstract description 26
- 230000007175 bidirectional communication Effects 0.000 title claims abstract description 10
- 238000004519 manufacturing process Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims description 20
- 238000012790 confirmation Methods 0.000 claims description 11
- 230000002085 persistent effect Effects 0.000 claims description 2
- 230000006854 communication Effects 0.000 abstract description 27
- 238000004891 communication Methods 0.000 abstract description 26
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本公开的实施例提供一种web服务端与无人机探测及反制设备双向通信的方法,属于通信技术领域。所述方法包括:消息中间件创建第一队列与第二队列;接收生产端投放的消息,并根据接收消息的消息中间件中的交换机,将消息推送到交换机绑定的队列中;以及当监听到所述第一队列或/和所述第二队列中存在消息入队的情况时,将入队的消息推送到该队列绑定的消费端,其中,web服务端作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。本公开实施例适用于无人机探测及反制的过程中。
Description
技术领域
本公开的实施例涉及通信技术领域,具体地涉及一种web服务端与无人机探测及反制设备双向通信的方法。
背景技术
随着跨语言不同系统之间的通信应用场景越来越多,数据传输的便捷性、可靠性、低耦合性和高可用性被越来越多的开发人员所需求,当接入的通信程序端越来越多,传统的通信方式的一些弊端被暴露出来,例如,在C++程序(例如,无人机探测及反制设备)与java程序(例如,web服务端)之间的通信方法,现有的通信方式使得代码耦合性增加,尤其在多人协作时,由于代码风格难以统一,从而造成代码的可维护性大大降低,不利于代码迭代,通常也会丧失平台的可移植性,另外,java程序端与C++程序端没有完全解耦,无法实现高效的双向通信。
发明内容
本公开的实施例的目的是提供一种web服务端与无人机探测及反制设备双向通信的方法、一种用于执行web服务端与无人机探测及反制设备双向通信的消息中间件、以及存储有计算机程序的计算机可读存储介质,通过消息中间件提供了web服务端与无人机探测及反制设备的异步、可靠、解耦的数据传输方式,保障了消息的有序调度和容错,实现高度灵活性和复杂工作流任务的调度。
为了实现上述目的,本公开的第一方面提供一种web服务端与无人机探测及反制设备双向通信的方法,所述方法包括:消息中间件创建第一队列与第二队列;所述消息中间件接收生产端投放的消息,并根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中;以及当所述消息中间件监听到所述第一队列或/和所述第二队列中存在消息入队的情况时,将入队的消息推送到该队列绑定的消费端,以便所述消费端消费所述消息;其中,所述web服务端作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,所述无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。
在本公开的一些实施例中,当所述消息中间件接收生产端投放的消息之后,所述方法还包括:向所述生产端返回确认接收信息。
在本公开的一些实施例中,当所述消息中间件接收生产端投放的消息之后,所述方法还包括:将所述消息持久化到磁盘,并在接收到所述消费端返回的消费确认信息后,将所述消息从所述磁盘上删除。
在本公开的一些实施例中,所述方法还包括:当所述消息中间件被重启后,从所述磁盘恢复持久化的未被消费的消息。
在本公开的一些实施例中,所述消息中间件还创建有扇出交换机(即Fanout类型交换机),所述根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中包括:当所述消息中间件中的所述扇出交换机接收到所述消息时,将所述消息通过所述扇出交换机推送至所述扇出交换机绑定的所述第一队列中。
在本公开的一些实施例中,所述消息中间件还创建有直连交换机(即Direct类型交换机),所述根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中包括:当所述消息中间件中的所述直连交换机接收到所述消息时,根据所述消息中的路由键对应的所述第二队列的名称,将所述消息通过所述直连交换机推送至所述直连交换机绑定的所述第二队列中。
在本公开的一些实施例中,所述方法还包括:当将所述消息推送到所述交换机绑定的队列的过程中出错时,向所述生产端返回入队失败信息。
在本公开的一些实施例中,所述方法还包括:当将所述消息成功推送到所述交换机绑定的队列时,向所述生产端返回入队成功信息。
在本公开的一些实施例中,所述将入队的消息推送到该队列绑定的消费端包括:将入队的预设数量的消息推送至该队列绑定的消费端。
在本公开的一些实施例中,在所述将入队的消息推送到该队列绑定的消费端之后,所述方法还包括:当接收到所述消费端返回的消费确认信息后,删除该队列中所述消费确认信息所指示的消息。
本公开的第二方面提供一种用于执行web服务端与无人机探测及反制设备双向通信的消息中间件,所述消息中间件包括至少一个处理器;以及存储有计算机程序的至少一个存储器。当计算机程序由至少一个处理器执行时,使得消息中间件:创建第一队列与第二队列;接收生产端投放的消息,并根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中;以及当监听到所述第一队列或/和所述第二队列中存在消息入队的情况时,将入队的消息推送到该队列绑定的消费端,以便所述消费端消费所述消息;其中,所述web服务端作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,所述无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。
本公开的第三方面提供一种存储有计算机程序的计算机可读存储介质,其中,计算机程序在由处理器执行时实现根据本公开的第一方面所述的方法的步骤。
本公开的实施例提出了使用消息中间件实现web服务端与无人机探测及反制设备之间相互通信的方法,实现了不同开发语言之间数据的异步、解耦、可靠的数据传输。
本公开的实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
图1是根据本公开的实施例的web服务端与无人机探测及反制设备双向通信的过程的示意性组合流程图;
图2是根据本公开的实施例的web服务端向无人机探测及反制设备发送消息的过程的示意图;
图3是根据本公开的实施例的无人机探测及反制设备向web服务端发送消息的过程的示意图;
图4是根据本公开的实施例的web服务端与无人机探测及反制设备双向通信的方法的示意性流程图;
图5是根据本公开的实施例的消息中间件的示意性框图。
在附图中,最后两位数字相同的标记对应于相同的元素。需要注意的是,附图中的元素是示意性的,没有按比例绘制。
具体实施方式
为了使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其它实施例,也都属于本公开保护的范围。
除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开主题所属领域的技术人员所通常理解的相同含义。进一步将理解的是,诸如在通常使用的词典中定义的那些的术语应解释为具有与说明书上下文和相关技术中它们的含义一致的含义,并且将不以理想化或过于正式的形式来解释,除非在此另外明确定义。另外,诸如“第一”和“第二”的术语仅用于将一个元素(或元素的一部分)与另一个元素(或元素的另一部分)区分开。
如上所述,在一些应用场景下,需要无人机探测及反制设备与web服务端进行双向数据交互,在这种需求下就需要无人机探测及反制设备(C++应用程序)与web服务端(java应用程序)之间进行数据通信。在一种实施方式中,java应用程序通过java本地接口(JavaNative Interface,简称JNI)调用动态链接库(Dynamic Link Library,简称DLL动态库)的方式执行java语言和C++语言之间的通信。
这种实施方式存在以下不足:
java应用程序与C++应用程序通过JNI调用DLL动态库的方式进行通信,因此java应用程序的代码高度依赖于JNI的调用逻辑,使得java应用程序与C++应用程序之间的代码耦合性增加,可维护性降低,代码开发者的工作量增大,耗时且易于出错。此外,java应用程序的开发者和C++应用程序的开发者可能不同,因此可能需要多人协作。由于多个开发者的代码风格难以统一,因此多人协作容易造成代码的可维护性大大降低,不利于代码迭代,通常也会丧失平台的可移植性。
在另一种实施方式中,java应用程序与C++应用程序之间直接使用基于套接字(Socket)的网络通信,使用json/xml作为两者之间的消息传输协议,在一定程度上维持平台和语言的独立性。
但是,这种实施方式也存在一定的不足:
java应用程序作为Socket连接的客户端,C++应用程序作为Socket连接的服务端。服务端的Socket需要绑定IP地址和端口,客户端的Socket则根据服务端绑定的IP地址和端口连接到服务端。连接成功后,服务端的主要功能是一直处于阻塞监听(accept)状态,监听来自客户端的Socket的请求。由于等待消息的特性(即服务端的程序需要一直监听是否有响应消息),因此服务端需要开启一个独立的线程来执行等待消息这项任务。在独立的线程中执行监听操作能够保证应用的其他部分能够正常执行(如响应用户输入),因为通过读取(read)方法来等待数据传输所需要的时间是不确定的,对于需要建立许多Socket连接来进行通信的程序来说,即使在每一个Socket中创建一个线程也会显得难以应对。同时也可以看出,当分布式部署多个C++应用程序时,需要java应用程序建立多个Socket连接与每个C++应用程序进行连接通信,资源开销增加且程序维护的难度也增加。
虽然java应用程序与C++应用程序使用Socket通信比起JNI通信看似减少工作量,不需要高度代码耦合,但是在多客户端同时连接服务端传输数据或者客户端高频流发送数据,服务端应付不过来或者服务端崩溃,那么数据可能会丢失,这需要有一定机制维护数据丢失问题,并且java应用程序与C++应用程序通过Socket连接并没有完全解耦,双方要协商谁是客户端,谁是服务端,客户端需要知道服务端的ip地址和端口号直连通信。当有不同客户端连接服务端且需要服务端给指定某一个客户端单独发送数据的时候,单纯的socket连接还没有高效、清晰、简单的解决办法。
为了实现java应用程序与C++应用程序之间的数据交互是双向、低延迟、可靠、异步、解耦的交互,本公开的实施例提出了使用消息中间件实现web服务端与无人机探测及反制设备之间的不同开发语言之间数据的异步、解耦、可靠的数据传输。
图1示出了根据本公开的实施例的web服务端与无人机探测及反制设备双向通信的过程的示意性组合流程图。消息中间件13在动作101处创建第一队列与第二队列。第一队列和第二队列是消息队列(MQ)。在动作102处,web服务端11作为生产端被绑定到第一队列,并作为消费端被绑定到第二队列。在动作103处,无人机探测及反制设备12作为生产端被绑定到第二队列,并作为消费端被绑定到第一队列。消费端负责消费队列中的消息,生产端负责往队列投放消息。对于无人机探测及反制设备12,第一队列用于接收java语言的消息,第二队列用于发送C++语言的消息(例如,无人机探测及反制设备12所采集的数据、和/或无人机探测及反制设备12自身的工作状态数据)。在本公开的一些实施例中,消息中间件13还可在动作101处创建直连交换机和扇出交换机。其中,所述扇出交换机发送消息的方式与广播方式类似,只要队列与该类型的交换机绑定,所有发送至该扇出交换机的消息均会被转发到所有与之绑定的队列中,而所有绑定至该队列中的消费端均会收到该消息。在本公开实施例中,第一队列与扇出交换机绑定,而绑定所述第一队列的消费端为无人机探测及反制设备12,绑定所述第一队列的生产端为web服务端11,因此通过扇出交换机,可保证web服务端11发送的消息,可被无人机探测及反制设备12所接收。其中,对于直连交换机,队列通过路由键与直连交换机进行绑定,一个队列可以通过多个不同的路由键与直连交换机进行绑定。在本公开实施例中,第二队列与直连交换机绑定,而绑定所述第二队列的消费端为web服务端11,绑定所述第二队列的生产端为无人机探测及反制设备12,因此通过直连交换机,可保证无人机探测及反制设备12发送的消息,会被web服务端11接收。
在动作105处,消息中间件13监听第一队列以及第二队列。在动作104处,消息中间件13接收生产端(包括web服务端11与无人机探测及反制设备12)投放的消息,并根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中。其中,通过扇出交换机与直连交换机,保证所投放的消息被推送至各自绑定的队列中。其中,当所述消息中间件中的所述扇出交换机接收到所述消息时,将所述消息通过所述扇出交换机推送至所述扇出交换机绑定的所述第一队列中。当所述消息中间件中的所述直连交换机接收到所述消息时,根据所述消息中的路由键对应的所述第二队列的名称,将所述消息通过所述直连交换机推送至所述直连交换机绑定的所述第二队列中。应注意,动作105需要在动作104之前执行,以便消息中间件13及时发现队列(包括第一队列和第二队列)中的消息。图2示出根据本公开的实施例的web服务端11向无人机探测及反制设备12发送消息的过程的示意图。在图2的示例中,web服务端11向消息中间件13的扇出交换机131发送消息。由于消息来自web服务端11,因此扇出交换机131将该消息入队到第一队列132。消息中间件13保持监听第一队列132。当第一队列132中有消息入队,消息中间件13立即将该消息推送至第一队列132绑定的消费端,即无人机探测及反制设备12,以便无人机探测及反制设备12消费该消息。无人机探测及反制设备12消费的消息可触发无人机探测及反制设备12执行对应的操作。
如上所述,无人机探测及反制设备12可使用第二队列来向web服务端11发送消息。应注意,动作105可在动作101之前执行,也可以在动作101至动作104执行的过程中的任一时间点执行。动作105只需要在动作106之前执行即可。在动作106处,消息中间件13将监听到的消息推送至队列所绑定的消费端(包括web服务端11与无人机探测及反制设备12)。消费端(包括web服务端11与无人机探测及反制设备12)可在动作107以及动作108处,消费该消息。
图3示出根据本公开的实施例的无人机探测及反制设备12向web服务端11发送消息的过程的示意图。在图3的示例中,无人机探测及反制设备12向消息中间件13的直连交换机133发送消息。由于消息来自无人机探测及反制设备12,因此直连交换机133将该消息入队到第二队列134。消息中间件13保持监听第二队列134。当第二队列134中有消息入队,消息中间件13立即将该消息推送至第二队列134绑定的消费端,即web服务端11,以便web服务端11消费该消息。
本公开的实施例使用消息中间件解耦不同的开发语言web服务端11(java应用程序)与无人机探测及反制设备12(C++应用程序)通信的方式,将控制逻辑与业务逻辑分离,并且采用异步任务的方式,从消息中间件中接收消息,业务开发人员只需要关注业务逻辑本身的数据处理,占用执行线程的时间会大幅缩短,响应速度,吞吐量安全可控,而交互数据存储在消息队列中,安全可靠,只需要维护管理消息中间件就可以异步、解耦的实现不同开发语言之间数据的可靠传递。
可以实现web服务端11与无人机探测及反制设备12异步解耦,通信双方只关注自身的业务逻辑,相互之间不需要任何代码冗余。消息队列只是负责双方数据交互的载体。生产端只需要将数据放入队列,消费端只需要对消息中间件自动及时取出的消息进行处理。消费端不需要关心生产端是谁,生产端也不需要关注消息是被谁消费。根据约定的队列,消息自动流转,同时也不用担心消息丢失,使用消息队列持久化机制和消费端应答机制,能够保证数据安全可靠。
上述过程保障了web服务端11与无人机探测及反制设备12生产的消息被及时推送。这样提高了web服务端11与无人机探测及反制设备12之间的通信效率。通过上述过程,建立起了web服务端11与无人机探测及反制设备12的双向连接,实现web服务端11与无人机探测及反制设备12之间的低延迟、异步、解耦通信。
图4示出根据本公开的实施例的web服务端与无人机探测及反制设备双向通信的方法400的示意性流程图。下面参考图4来描述web服务端与无人机探测及反制设备双向通信的过程。
在图4的框S401处,消息中间件创建第一队列与第二队列。其中,所述web服务端作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,所述无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。
在框S402处,所述消息中间件接收生产端投放的消息,并根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中。
在本公开的一些实施例中,消息中间件还可创建扇出交换机与直连交换机。具体的,当所述消息中间件中的所述扇出交换机接收到所述消息时,将所述消息通过所述扇出交换机推送至所述扇出交换机绑定的所述第一队列中。当所述消息中间件中的所述直连交换机接收到所述消息时,根据所述消息中的路由键对应的所述第二队列的名称,将所述消息通过所述直连交换机推送至所述直连交换机绑定的所述第二队列中。
在本公开的一些实施例中,生产端在将消息投放到消息中间件中的交换机之后,会触发确认消息回调,当所述消息中间件的交换机接收到生产端投放的消息后,可向所述生产端返回确认接收信息。若是没有接收到确认接收信息,则表明该消息没有被交换机所接收。另外,为了避免消息丢失,当消息中间件发生故障或者因网络抖动失去心跳时,web服务端或无人机探测及反制设备将需要发送的消息存储在本地数据库,避免消息丢失,同时web服务端或无人机探测及反制设备使用心跳机制检测到消息中间件已修复后,开启异步任务将消息投放到相应的队列。
在本公开的一些实施例中,为了避免消息中间件宕机,消息因为来不及消费而丢失,当所述消息中间件接收生产端投放的消息之后,将所述消息持久化到磁盘,并在接收到所述消费端返回的消费确认信息后,将所述消息从所述磁盘上删除。当消息中间件发生故障或因其他原因关闭后,若所述消息中间件被重启,则可从所述磁盘恢复持久化的未被消费的消息。
在本公开的一些实施例中,当将所述消息推送到所述交换机绑定的队列的过程中出错时,向所述生产端返回入队失败信息。而当将所述消息成功推送到所述交换机绑定的队列时,向所述生产端返回入队成功信息。
在框S403处,监听第一队列或/和第二队列中是否存在消息入队的情况。
如果第一队列以及第二队列均没有消息入队(在框S403处为“否”),则过程回到框S403处,消息中间件继续监听第一队列或第二队列中是否存在消息入队的情况。如果第一队列或/和第二队列有消息入队(在框S403处为“是”),在框S404处,消息中间件将入队的消息推送至该队列所绑定的消费端。从而,方便消费端消费所述消息。
在本公开的一些实施例中,设置消息预取模式,即消息中间件可将第一队列以及第二队列中的预设数量的消息推送至队列绑定的消费端,即将第一队列中预设数量的消息推送至无人机探测及反制设备,将第二队列中预设数量的消息推送至web服务端。其中,上述对应于第一队列与第二队列的预设数量可以相同,也可以不同,可根据需求设定,进一步降低消息中间件的负载,提高处理能力。
在本公开的一些实施例中,将所述消息推送到该队列绑定的消费端之后,不会从该队列中删除该消息,而是当接收到消费端返回的消费确认信息后,才会删除该队列中所述消费确认信息所指示的消息。从而确保在消费端消费该消息的过程中,消息还存在于消息队列中,避免由于业务处理出错导致消息丢失问题。
另外,所述消费端创建有备用交换机,例如直连交换机,所述消费端无法消费的异常消息通过所述备用交换机被推送至备用消息队列,从而指定另外的消费端消费所述备用消息队列中的消息。
另外,为了确保消息可靠和后期问题跟踪排查,消费端接收到消息后,调用异步线程,将消息存储在日志库,同时消息流转到正常业务程序处理。
在本公开的一些实施例中,所述消息中间件包括管理界面,包括连接管理、通道管理、交换机管理、队列管理、用户及权限管理、整体视图概览,并提供Restful接口和web页面动态展现。
图5示出根据本公开的实施例的用于执行web服务端与无人机探测及反制设备双向通信的消息中间件13的示意性框图。如图5所示,消息中间件13可包括处理器510和存储有计算机程序的存储器520。当计算机程序由处理器510执行时,使得消息中间件13可执行如图4所示的方法400的步骤。在一个示例中,web服务端可作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,所述无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。
在本公开的实施例中,处理器510可以是例如中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、基于多核的处理器架构的处理器等。存储器520可以是使用数据存储技术实现的任何类型的存储器,包括但不限于随机存取存储器、只读存储器、基于半导体的存储器、闪存、磁盘存储器等。
此外,在本公开的实施例中,无人机探测及反制设备也可包括输入设备,例如传感器、摄像头等,用于采集数据。另外,无人机探测及反制设备还可包括输出设备,例如指示灯等,用于输出无人机探测及反制设备的运行状态。
另外,在本公开的实施例中,web服务端也可包括输入设备,例如麦克风、键盘、鼠标等,用于输入java语言指令。另外,web服务端还可包括输出设备,例如扩音器、显示器等,用于输出控制无人机探测及反制设备的消息。
在本公开的其它实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,其中,计算机程序在由处理器执行时能够实现如图4所示的方法的步骤。
综上所述,本公开的实施例使用消息中间件实现以异步回调的方式接收消息。通信双方都可以在任何时刻向另一方发送数据,因此能够及时更新数据且不会浪费系统资源。
此外,本公开的实施例使用消息队列替代JNI或者socket连接。使用消息队列可以实现web服务端与无人机探测及反制设备异步解耦,通信双方只关注自身的业务逻辑,相互之间不需要任何代码冗余。消息队列只是负责双方数据交互的载体。生产端只需要将数据放入队列,消费端只需要对消息中间件自动及时取出的消息进行处理。消费端不需要关心生产端是谁,生产端也不需要关注消息是被谁消费。根据约定的队列,消息自动流转,同时也不用担心消息丢失,使用消息队列持久化机制和消费端应答机制,能够保证数据安全可靠。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种web服务端与无人机探测及反制设备双向通信的方法,其特征在于,所述方法包括:
消息中间件创建第一队列与第二队列;
所述消息中间件接收生产端投放的消息,并根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中;以及
当所述消息中间件监听到所述第一队列或/和所述第二队列中存在消息入队的情况时,将入队的消息推送到该队列绑定的消费端,以便所述消费端消费所述消息;
其中,所述web服务端作为生产端绑定所述第一队列并作为消费端绑定所述第二队列,所述无人机探测及反制设备作为生产端绑定所述第二队列并作为消费端绑定所述第一队列。
2.根据权利要求1所述的方法,其特征在于,当所述消息中间件接收生产端投放的消息之后,所述方法还包括:
向所述生产端返回确认接收信息。
3.根据权利要求1所述的方法,其特征在于,当所述消息中间件接收生产端投放的消息之后,所述方法还包括:
将所述消息持久化到磁盘,并在接收到所述消费端返回的消费确认信息后,将所述消息从所述磁盘上删除。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述消息中间件被重启后,从所述磁盘恢复持久化的未被消费的消息。
5.根据权利要求1所述的方法,其特征在于,所述消息中间件还创建有扇出交换机,所述根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中包括:
当所述消息中间件中的所述扇出交换机接收到所述消息时,将所述消息通过所述扇出交换机推送至所述扇出交换机绑定的所述第一队列中。
6.根据权利要求1所述的方法,其特征在于,所述消息中间件还创建有直连交换机,所述根据接收所述消息的所述消息中间件中的交换机,将所述消息推送到所述交换机绑定的队列中包括:
当所述消息中间件中的所述直连交换机接收到所述消息时,根据所述消息中的路由键对应的所述第二队列的名称,将所述消息通过所述直连交换机推送至所述直连交换机绑定的所述第二队列中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当将所述消息推送到所述交换机绑定的队列的过程中出错时,向所述生产端返回入队失败信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当将所述消息成功推送到所述交换机绑定的队列时,向所述生产端返回入队成功信息。
9.根据权利要求1所述的方法,其特征在于,所述将入队的消息推送到该队列绑定的消费端包括:
将入队的预设数量的消息推送至该队列绑定的消费端。
10.根据权利要求1所述的方法,其特征在于,在所述将入队的消息推送到该队列绑定的消费端之后,所述方法还包括:
当接收到所述消费端返回的消费确认信息后,删除该队列中所述消费确认信息所指示的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310036125.9A CN115766689A (zh) | 2023-01-10 | 2023-01-10 | web服务端与无人机探测及反制设备双向通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310036125.9A CN115766689A (zh) | 2023-01-10 | 2023-01-10 | web服务端与无人机探测及反制设备双向通信的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766689A true CN115766689A (zh) | 2023-03-07 |
Family
ID=85348950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310036125.9A Pending CN115766689A (zh) | 2023-01-10 | 2023-01-10 | web服务端与无人机探测及反制设备双向通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766689A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889454A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种微服务架构的消息推送装置及方法 |
CN110460366A (zh) * | 2019-07-12 | 2019-11-15 | 视联动力信息技术股份有限公司 | 一种无人机数据对接方法、系统、电子设备及存储介质 |
CN111031094A (zh) * | 2019-11-06 | 2020-04-17 | 远景智能国际私人投资有限公司 | IoT系统中的数据传输方法、装置、设备及存储介质 |
US20210064671A1 (en) * | 2019-08-30 | 2021-03-04 | Afilias Public Limited Company | Real time exchange of update information over a network using web sockets coupled to a message queue |
CN112671933A (zh) * | 2021-02-23 | 2021-04-16 | 浙江中控技术股份有限公司 | 一种数据处理方法及系统 |
CN114363422A (zh) * | 2021-12-31 | 2022-04-15 | 深圳市普渡科技有限公司 | 室内机器人及其控制系统和方法 |
CN115361348A (zh) * | 2022-10-19 | 2022-11-18 | 理工全盛(北京)科技有限公司 | 由数据采集设备执行的与web浏览器通信的方法 |
-
2023
- 2023-01-10 CN CN202310036125.9A patent/CN115766689A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889454A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种微服务架构的消息推送装置及方法 |
CN110460366A (zh) * | 2019-07-12 | 2019-11-15 | 视联动力信息技术股份有限公司 | 一种无人机数据对接方法、系统、电子设备及存储介质 |
US20210064671A1 (en) * | 2019-08-30 | 2021-03-04 | Afilias Public Limited Company | Real time exchange of update information over a network using web sockets coupled to a message queue |
CN111031094A (zh) * | 2019-11-06 | 2020-04-17 | 远景智能国际私人投资有限公司 | IoT系统中的数据传输方法、装置、设备及存储介质 |
CN112671933A (zh) * | 2021-02-23 | 2021-04-16 | 浙江中控技术股份有限公司 | 一种数据处理方法及系统 |
CN114363422A (zh) * | 2021-12-31 | 2022-04-15 | 深圳市普渡科技有限公司 | 室内机器人及其控制系统和方法 |
CN115361348A (zh) * | 2022-10-19 | 2022-11-18 | 理工全盛(北京)科技有限公司 | 由数据采集设备执行的与web浏览器通信的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US8484659B2 (en) | Distributed processing of binary objects via message queues including a failover safeguard | |
CN112615666B (zh) | 基于RabbitMQ和HAProxy的微服务高可用性部署方法 | |
US20040015368A1 (en) | High availability for asynchronous requests | |
US10693816B2 (en) | Communication methods and systems, electronic devices, and computer clusters | |
CN110716748A (zh) | 业务处理方法、装置、计算机可读介质及电子设备 | |
US12014216B2 (en) | Method for platform-based scheduling of job flow | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN115145683A (zh) | 云服务实现方法及装置 | |
CN113687956A (zh) | 消息路由分发方法、装置、计算机设备及存储介质 | |
CN114024999B (zh) | 一种任务补偿方法、系统、装置、电子设备、存储介质 | |
CN109347906B (zh) | 一种数据传输方法、装置、与服务器 | |
US10726047B2 (en) | Early thread return with secondary event writes | |
CN113971098A (zh) | 一种RabbitMQ消费管理方法及系统 | |
US8201017B2 (en) | Method for queuing message and program recording medium thereof | |
CN115766689A (zh) | web服务端与无人机探测及反制设备双向通信的方法 | |
US20100250684A1 (en) | High availability method and apparatus for shared resources | |
CN112596761B (zh) | 服务的更新发布方法、装置及相关设备 | |
US8359602B2 (en) | Method and system for task switching with inline execution | |
CN111752911A (zh) | 一种基于Flume的数据传输方法、系统、终端及存储介质 | |
WO2019230228A1 (ja) | 情報処理システム、情報処理装置、および情報処理システムの制御方法 | |
CN115914330B (zh) | 一种基于nio异步线程模型的异构应用间通信方法 | |
US11683359B2 (en) | Methods and systems for persistent communications between client applications and application servers | |
WO2023043482A1 (en) | System and method for asynchronous backend processing of expensive command line interface commands | |
US9588924B2 (en) | Hybrid request/response and polling messaging 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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230307 |