一种消息发送方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38086812 阅读:10 留言:0更新日期:2023-07-06 08:55
本申请实施例公开了一种消息发送方法、装置、电子设备及存储介质,方法包括:为至少一个服务端中每个服务端分配一一对应的消息队列,并为每个消息队列创建一一对应的消息转发线程;接收至少一个客户端中每个客户端发送的消息,并在每个消息队列中缓存以对应服务端为目的服务端的消息;针对每个消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端;其中,不同消息转发线程并行运行。不同消息转发线程并行运行。不同消息转发线程并行运行。

【技术实现步骤摘要】
一种消息发送方法、装置、电子设备及存储介质


[0001]本申请实施例涉及电子通信
,尤其涉及一种消息发送方法、装置、电子设备及存储介质。

技术介绍

[0002]嵌入式设备中,存在多种并发消息处理的使用场景,如多个客户端进程请求芯片内多个服务端进程的服务,即存在多个客户端与多个服务端交互的场景。其中,一个服务端可以处理多个客户端的请求,且一个客户端可以向多个服务端发送消息。
[0003]目前,为了支持客户端发送消息和服务端处理消息,使用生产者和消费者模式,即客户端是生产者负责产生数据,这些数据由服务端充当消费者来负责处理,该模式还需要有一个缓冲区作为消费队列处于生产者和消费者之间,作为一个中介,生产者把数据放入消息队列,而消费者从消息队列取出数据。
[0004]然而,当不同客户端需要同时向不同服务端发送消息的情况下,由于中间维护了一个消息队列用来缓存消息,只能按序进行消息转发,导致消息发送的效率低,不同服务端只能按序处理消息,消息处理的速度慢。

技术实现思路

[0005]本申请实施例提供一种消息发送方法、装置、电子设备及存储介质,可以为不同服务端并行转发消息,提高了消息发送的效率,从而能够支持不同服务端并行处理消息,以提高消息处理速度。
[0006]本申请实施例的技术方案是这样实现的:
[0007]本申请实施例提供了一种消息发送方法,包括:
[0008]为至少一个服务端中每个服务端分配一一对应的消息队列,并为每个所述消息队列创建一一对应的消息转发线程;/>[0009]接收至少一个客户端中每个客户端发送的消息,并在每个所述消息队列中缓存以对应服务端为目的服务端的消息;
[0010]针对每个所述消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端;其中,不同消息转发线程并行运行。
[0011]在上述方法中,所述接收至少一个客户端中每个客户端发送的消息之前,所述方法还包括:
[0012]连接每个所述客户端,并为每个所述客户端分配全局唯一的客户端标识;
[0013]其中,每个所述客户端,其发送的消息和接收的回复均携带其客户端标识。
[0014]在上述方法中,所述接收至少一个客户端中每个客户端发送的消息之后,所述方法还包括:
[0015]在取消与第一客户端连接的情况下,禁止与所述第一客户端通信,并回收为所述第一客户端分配的客户端标识;
[0016]所述第一客户端为所述至少一个客户端中任一客户端。
[0017]在上述方法中,各个消息中分别携带其目的服务端的服务端标识,每个所述消息队列与对应服务端的服务端标识关联;
[0018]所述在每个所述消息队列中缓存以对应服务端为目的服务端的消息,包括:
[0019]在每个所述消息队列中,缓存携带与其关联的服务端标识的消息。
[0020]在上述方法中,所述至少一个服务端中包括第一服务端,所述第一服务端对应的第一消息队列由具备不同优先级的不同消息子队列构成;
[0021]所述在每个所述消息队列中缓存以对应服务端为目的服务端的消息,包括:
[0022]在每个所述消息子队列中,缓存以所述第一服务端为目的服务端,且与其优先级相同的消息;
[0023]相应的,所述针对每个所述消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端,包括:
[0024]调用所述第一消息队列对应的消息转发线程,按照不同所述消息子队列的优先级,将每个所述消息子队列缓存的消息依次发送至所述第一服务端。
[0025]在上述方法中,各个消息中分别携带指示其消息类型的消息类型标识;其中,每个所述服务端,支持根据接收到的消息携带的消息类型标识,确定消息处理策略。
[0026]在上述方法中,还包括:
[0027]为每个所述服务端分配一一对应的回复队列,并为每个所述回复队列创建一一对应的回复转发线程;
[0028]接收每个所述服务端根据其接收到的消息生成的回复,并在每个所述回复队列中缓存对应服务端生成的回复;
[0029]针对每个所述回复队列,调用对应的回复转发线程将缓存的回复发送至提供用于生成其的消息的客户端;其中,不同回复转发线程并行运行。
[0030]在上述方法中,各个回复中分别携带生成其的服务端的服务端标识,每个所述回复队列与对应服务端的服务端标识关联;
[0031]所述在每个所述回复队列中缓存对应服务端生成的回复,包括:
[0032]在每个所述回复队列中,缓存携带与其关联的服务端标识的回复。
[0033]在上述方法中,所述至少一个服务端中包括第二服务端,所述第二服务端对应的第二回复队列由具备不同优先级的不同回复子队列构成;
[0034]所述在每个所述回复队列中缓存对应服务端生成的回复,包括:
[0035]在每个所述回复子队列中,缓存所述第二服务端生成,且与其优先级相同的回复;
[0036]相应的,所述针对每个所述回复队列,调用对应的回复转发线程将缓存的回复发送至提供用于生成其的消息的客户端,包括:
[0037]调用所述第二回复队列对应的回复转发线程,按照不同所述回复子队列的优先级,将每个所述回复子队列缓存的回复依次发送至提供用于生成其的消息的客户端。
[0038]在上述方法中,还包括:
[0039]在接收到第三服务端发送的上线通知的情况下,为所述第三服务端分配对应的第三消息队列,并为所述第三消息队列创建对应的第三消息转发线程;
[0040]以及,为所述第三服务端分配对应的第三回复队列,并为所述第三回复队列创建
对应的第三回复转发线程;
[0041]其中,所述第三服务端为所述至少一个服务端中任一服务端。
[0042]在上述方法中,还包括:
[0043]在接收到第四服务端发送的下线通知的情况,回收与所述第四服务端对应的第四消息队列,并释放与所述第四消息队列对应的第四消息转发线程;
[0044]以及,回收与所述第四服务端对应的第四回复队列,并释放与所述第四回复队列对应的第四回复转发线程;
[0045]其中,所述第四服务端为所述至少一个服务端中任一服务端。
[0046]在上述方法中,所述至少一个客户端中目标客户端发送的消息携带时长信息,所述针对每个所述消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端之后,所述方法还包括:
[0047]在所述时长信息指示的目标时长内,未接收到目标服务端生成的回复的情况下,向所述目标客户端发送消息处理超时通知;
[0048]其中,所述目标服务端,为所述至少一个服务端中用于接收并处理所述目标客户端发送的消息的服务端。
[0049]在上述方法中,每个所述客户端,为自动化测试环境中部署的一个进程,支持模拟真实客户端的行为;
[0050]每个所述服务端,为所述自动化测试环境中部署的一个进程,支持模拟真实服务端的行为;...

【技术保护点】

【技术特征摘要】
1.一种消息发送方法,其特征在于,包括:为至少一个服务端中每个服务端分配一一对应的消息队列,并为每个所述消息队列创建一一对应的消息转发线程;接收至少一个客户端中每个客户端发送的消息,并在每个所述消息队列中缓存以对应服务端为目的服务端的消息;针对每个所述消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端;其中,不同消息转发线程并行运行。2.根据权利要求1所述的方法,其特征在于,所述接收至少一个客户端中每个客户端发送的消息之前,所述方法还包括:连接每个所述客户端,并为每个所述客户端分配全局唯一的客户端标识;其中,每个所述客户端,其发送的消息和接收的回复均携带其客户端标识。3.根据权利要求2所述的方法,其特征在于,所述接收至少一个客户端中每个客户端发送的消息之后,所述方法还包括:在取消与第一客户端连接的情况下,禁止与所述第一客户端通信,并回收为所述第一客户端分配的客户端标识;所述第一客户端为所述至少一个客户端中任一客户端。4.根据权利要求1所述的方法,其特征在于,各个消息中分别携带其目的服务端的服务端标识,每个所述消息队列与对应服务端的服务端标识关联;所述在每个所述消息队列中缓存以对应服务端为目的服务端的消息,包括:在每个所述消息队列中,缓存携带与其关联的服务端标识的消息。5.根据权利要求1所述的方法,其特征在于,所述至少一个服务端中包括第一服务端,所述第一服务端对应的第一消息队列由具备不同优先级的不同消息子队列构成;所述在每个所述消息队列中缓存以对应服务端为目的服务端的消息,包括:在每个所述消息子队列中,缓存以所述第一服务端为目的服务端,且与其优先级相同的消息;相应的,所述针对每个所述消息队列,调用对应的消息转发线程将缓存的消息发送至对应的服务端,包括:调用所述第一消息队列对应的消息转发线程,按照不同所述消息子队列的优先级,将每个所述消息子队列缓存的消息依次发送至所述第一服务端。6.根据权利要求1所述的方法,其特征在于,各个消息中分别携带指示其消息类型的消息类型标识;其中,每个所述服务端,支持根据接收到的消息携带的消息类型标识,确定消息处理策略。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:为每个所述服务端分配一一对应的回复队列,并为每个所述回复队列创建一一对应的回复转发线程;接收每个所述服务端根据其接收到的消息生成的回复,并在每个所述回复队列中缓存对应服务端生成的回复;针对每个所述回复队列,调用对应的回复转发线程将缓存的回复发送至提供用于生成其的消息的客户端;其中,不同回复转发线程并行运行。
8.根据权利要求7所述的方法,其特征在于,各个回复中分别携带生成其的服务端的服务端标识,每个所述回复队列与对应服务端的服务端标识关联;所述在每个所述回复队列中缓存对应服务端生成的回复,包括:在每个所述回复队列中,缓存携带与其关联的服务端标识的回复。9.根据权利要求7所述的方法,其特征在于,所述至少一个服务端中包括第二服务端,所述第二服务端对应的第二回复队列由具备不同优先级的不同回复子队列构成;所述在每个所述回复队列中缓存对应服务端生成的回复,包括:在每个所述回复子队列中,缓存所述第二服务端生成,且与其优先级相同的回复;相应的,所述针对每个所述回复队列,调用对应的回复转发线程将缓存的回复发送至提供用于生成其的消息的客户端,包括:调用所述第二回复队列对应的回复转发线程,按照不同所述回复子队列的优先级,将...

【专利技术属性】
技术研发人员:马迎斌
申请(专利权)人:哲库科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1