数据发送方法及相关装置与流程

专利2023-01-04  156



1.本技术涉及数据处理技术领域,具体涉及一种数据发送方法及相关装置。


背景技术:

2.行情数据作为证券市场参与人进行交易的关键参考信息,数据发布的实时性至关重要。其中行情快照数据作为一类关键的市场数据,每隔一定周期会发布一次当前所有数据的最新状态,由于数据量巨大,为了降低带宽资源,一般都会对该类数据进行增量处理后再发布。但由于证券市场行情数据常常因市场行情波动而发生变化,即使进行了增量处理也仍然会存在负载出现较大波动的场景。如果按照峰值负载设置发布带宽,将大大提高市场参与人的接入成本。尤其是在带宽成本较高的环境中,一般会根据市场业务特点、历史负载以及均值负载而不是峰值负载,来规划接入带宽要求。现有机制一般都是通过引入打包压缩机制以及利用数据发布的周期性特点来平衡可用带宽与峰值带宽间存在的差异,而打包过程中单个数据包内消息越多压缩比较高,将引入较大时延,导致了信息发送时的时延较高。


技术实现要素:

3.本技术实施例提供一种数据发送方法及相关装置,能够根据当前的发送状态信息和消息列队中未发送的消息的数量确定出数据包的消息数量,并进行发送,从而可以动态的确定数据包的消息数量,减少了信息发送的时延。
4.本技术实施例的第一方面提供了一种数据发送方法,应用于服务器,所述方法包括:
5.获取所述服务器的当前发送状态信息;
6.根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;
7.从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;
8.发送所述待发送数据包。
9.在一个可能的实现方式中,所述根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量,包括:
10.根据所述发送状态信息,确定所述待发送数据包的类型信息;
11.根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
12.在一个可能的实现方式中,所述根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量,包括:
13.根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;
14.至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所
述待发送数据包的消息数量。
15.在一个可能的实现方式中,所述至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量,包括:
16.根据所述当前最大消息数量和预设消息量比例值区间,确定所述待发送数据包对应的第一消息数量区间;
17.根据所述消息列队中未发送的消息的数量,确定消息滞留等级;
18.根据所述消息滞留等级,确定第二消息数量区间;
19.根据所述第一消息数量区间和所述第二消息数量区间,确定第一参考消息数量区间;
20.获取所述消息队列中与所述待发送数据包对应的消息的消息属性;
21.根据所述消息属性确定第二参考消息数量区间;
22.根据所述第一参考消息数量区间和所述第二参考消息数量区间,确定所述待发送数据包的消息数量。
23.在一个可能的实现方式中,所述发送所述待发送数据包,包括:
24.将所述待发送消息传输至前置反馈队列;
25.根据所述发送状态信息,确定前置反馈队列的状态信息;
26.若所述前置反馈队列的状态信息为预设状态信息,则发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息。
27.本技术实施例的第二方面提供了一种数据发送装置,应用于服务器,所述装置包括:
28.获取模块,用于获取所述服务器的当前发送状态信息;
29.确定模块,用于根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;
30.打包模块,用于从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;
31.发送模块,用于发送所述待发送数据包。
32.在一个可能的实现方式中,所述确定模块用于:
33.根据所述发送状态信息,确定所述待发送数据包的类型信息;
34.根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
35.在一个可能的实现方式中,在所述根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量方面,所述确定模块用于:
36.根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;
37.至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
38.在一个可能的实现方式中,在所述至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量方面,所述确定模块用于:
39.根据所述当前最大消息数量和预设消息量比例值区间,确定所述待发送数据包对应的第一消息数量区间;
40.根据所述消息列队中未发送的消息的数量,确定消息滞留等级;
41.根据所述消息滞留等级,确定第二消息数量区间;
42.根据所述第一消息数量区间和所述第二消息数量区间,确定第一参考消息数量区间;
43.获取所述消息队列中与所述待发送数据包对应的消息的消息属性;
44.根据所述消息属性确定第二参考消息数量区间;
45.根据所述第一参考消息数量区间和所述第二参考消息数量区间,确定所述待发送数据包的消息数量。
46.在一个可能的实现方式中,所述发送模块用于:
47.将所述待发送消息传输至前置反馈队列;
48.根据所述发送状态信息,确定前置反馈队列的状态信息;
49.若所述前置反馈队列的状态信息为预设状态信息,则发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息。
50.本技术实施例的第三方面提供一种服务器,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本技术实施例第一方面中的步骤指令。
51.本技术实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。
52.本技术实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
53.实施本技术实施例,至少具有如下有益效果:
54.通过获取所述服务器的当前发送状态信息,根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量,从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包,发送所述待发送数据包,因此,能够根据当前的发送状态信息和消息列队中未发送的消息的数量确定出数据包的消息数量,并进行发送,从而可以动态的确定数据包的消息数量,减少了信息发送的时延。
附图说明
55.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1为本技术实施例提供了一种应用数据发送方法的服务器的示意图;
57.图2为本技术实施例提供了另一种数据发送方法的流程示意图;
58.图3为本技术实施例提供了另一种数据发送方法的流程示意图;
59.图4为本技术实施例提供的一种服务器的结构示意图;
60.图5为本技术实施例提供了一种数据发送装置的结构示意图。
具体实施方式
61.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
62.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
63.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本技术所描述的实施例可以与其它实施例相结合。
64.为了更好的理解本技术实施例提供的一种数据发送方法,下面首先对应用数据发送方法的服务器进行简要介绍。如图1所示,服务器中包括有接收单元、打包分组单元、发送单元和流控单元,以及消息队列和前置反馈队列,当然服务器中还可以包括有多个成套的打包分组单元、发送单元和流控单元,以及消息队列和前置反馈队列,此处仅以单个打包分组单元、发送单元和流控单元,以及消息队列和前置反馈队列为例进行说明。其中,接收单元收到消息后,对消息进行处理并为消息设置标签后放入消息队列;打包分组单元通过消息队列获取消息并将消息组合至一个数据包(数据包的消息数量基于服务器的发送状态信息和消息列队中未发送的消息的数量来确定),打包分组单元首次获取数据失败或数据包达到上限后即将数据包放入前置反馈队列;发送单元通过前置反馈队列获取数据包并发送;流控单元则对发送单元发送的数据进行流量控制。因此,能够根据当前的发送状态信息和消息列队中未发送的消息的数量确定出数据包的消息数量,并进行发送,从而可以动态的确定数据包的消息数量,减少了信息发送的时延。
65.请参阅图2,图2为本技术实施例提供了一种数据发送方法的流程示意图。如图2所示,应用于服务器,所述方法包括:
66.201、获取所述服务器的当前发送状态信息。
67.发送状态信息可以表征当前的发送工作状态,发送工作状态具体可以包括有,低负载状态、高负载状态和超负载状态。高负载状态可以理解为前置反馈队列中的待发送数据包的数量高于第一预设数量,消息队列中的消息小于第二预设数量,该第一预设数量和第二预设数量通过经验值或历史数据设定,超负载状态可以理解为前置反馈队列中的待发送数据包的数量高于第一预设数量,消息队列中的消息高于第二预设数量。低负载状态可以理解为前置反馈队列中的待发送数据包的数量小于第一预设数量,消息队列中的消息小于第二预设数量。
68.服务器可以理解为用于信息接收和发送的服务器。
69.202、根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量。
70.消息队列中的消息可以是证券市场的行情数据、行情快照数据等。该数据是通过周期性发送。
71.可以根据发送状态信息确定出待发送数据包的类型信息,并基于该类型信息和未发送消息的数量确定出待发送数据包的消息数量。类型信息可以表征不同状态下待发送数据包的消息的数量区间等。
72.203、从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包。
73.可以通过通用的数据打包方法对待发送消息进行打包处理,以得到待发送数据包,在得到待发送数据包后,将该数据包发送至前置反馈队列中。
74.204、发送所述待发送数据包。
75.在对待发送数据进行发送时,可以是从前置反馈队列中的队列顺序进行发送。前置反馈队列处于不同的状态时,可以包括有不同的消息发送方式,例如,前置反馈队列的状态信息为预设状态信息时,发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息。该预设状态可以是发送状态信息为高负载状态或超负载状态下前置反馈队列所处的状态。若不处于该预设状态,则可以直接发送待发送数据包。
76.本示例中,通过获取所述服务器的当前发送状态信息,根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量,从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包,发送所述待发送数据包,因此,能够根据当前的发送状态信息和消息列队中未发送的消息的数量确定出数据包的消息数量,并进行发送,从而可以动态的确定数据包的消息数量,减少了信息发送的时延。
77.在一个可能的实现方式中,一种可能的根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量的方法,包括:
78.a1、根据所述发送状态信息,确定所述待发送数据包的类型信息;
79.a2、根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
80.其中,不同的发送状态信息可以对应有不同的待发送数据包的类型信息,例如,发送状态信息为低负载发送状态,则待发送数据包的类型信息对应的待发送数据包的消息数量可以较小,从而减少处理时延。发送状态信息为高负载发送状态,则待发送数据包的类型信息对应的待发送数据包的消息数量可以较大,从而降低后续消息队列中未发送信息的数量等。
81.可以根据待发送数据包的类型信息,确定待发送数据包的当前最大消息数量,并基于该当前最大消息数量和未发送的消息的数量来确定出待发送数据包的消息数量。因此,可以动态的确定出待发送数据包的消息数量,提升了发送时的可靠性以及降低了发送时延。
82.在一个可能的实现方式中,一种可能的根据所述待发送数据包的类型信息和所述
消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量的方法,包括:
83.b1、根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;
84.b2、至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
85.其中,不同的类型信息可以对应有不同的当前最大消息数量,该当前最大消息数量可以是待发送数据包的最大消息数量,也可以是小于该最大消息数量的一个数值。
86.可以至少根据当前最大消息数量和预设的消息量比例值区间确定的第一消息数量区间,以及根据消息列队中未发送的消息的数量确定的第二消息数量区间来确定出待发送数据包的消息数量,从而提升了消息数量确定时的准确性。
87.在一个可能的实现方式中,一种可能的根据至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量的方法,包括:
88.c1、根据所述当前最大消息数量和预设消息量比例值区间,确定所述待发送数据包对应的第一消息数量区间;
89.c2、根据所述消息列队中未发送的消息的数量,确定消息滞留等级;
90.c3、根据所述消息滞留等级,确定第二消息数量区间;
91.c4、根据所述第一消息数量区间和所述第二消息数量区间,确定第一参考消息数量区间;
92.c5、获取所述消息队列中与所述待发送数据包对应的消息的消息属性;
93.c6、根据所述消息属性确定第二参考消息数量区间;
94.c7、根据所述第一参考消息数量区间和所述第二参考消息数量区间,确定所述待发送数据包的消息数量。
95.其中,预设消息量比例值区间可以理解为与最大消息数量对应的比例值区间,例如,最大消息数量的值越大,则比例值区间的上限和下限越大。
96.未发送的消息的数量越大,则消息滞留等级越高;未发送的消息的数量越小,则消息滞留等级越低。不同的消息滞留等级对应有不同的消息数量区间,从而可以确定出未发送的消息的数量,确定的消息滞留等级,对应的消息数量区间。
97.可以将第一消息数量区间和所述第二消息数量区间的交集,确定为第一参考数量区间。
98.可以对待发送数据包对应的消息进行属性解析,以得到消息属性,例如可以提取待发送数据包对应的消息的属性标识,根据该属性标识确定消息属性。消息属性可以包括有消息的类型和消息对应的应用场景。
99.不同的消息属性信息对应有不同的第二参考消息数量区间。也可以是根据消息属性确定的消息紧急度,来确定第二参考消息数量区间,具体例如可以是根据消息的类型和应用场景来确定消息紧急度,不同的类型对应有不同的紧急度,不同的应用场景对应有不同的紧急度,紧急度越高,则第二参考消息数量区间的上限和下限越高。
100.可以将第一参考消息数量区间和所述第二参考消息数量区间的交集中的任一个消息数量,确定为待发送数据包的消息数量。
101.本示例中,通过当前最大消息数量和预设消息量比例值区间、以及中未发送的消息的数量确定的消息滞留等级来确定的第一参考消息数量区间,和根据消息属性确定第二
参考消息数量区间确定的待发送数据包的消息数量,可以根据消息属性来对数量进行计算,提升了消息数量确定时的准确性。
102.在一个可能的实现方式中,一种可能的根据发送所述待发送数据包的方法,包括:
103.d1、将所述待发送消息传输至前置反馈队列;
104.d2、根据所述发送状态信息,确定前置反馈队列的状态信息;
105.d3、若所述前置反馈队列的状态信息为预设状态信息,则发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息。
106.在前置反馈队列的状态跳变为非预设状态信息时,则可以通知打包分组单元处理所述前置反馈队列之外的消息。
107.在一个具体的实施例中,服务器的发送状态为超负载状态时,会导致消息队列累积大量消息。对于周期性发布的数据,该方式会导致后续周期数据时延不断增大。根据周期性数据会重复发布的特点,使用不同的tag标识不同周期的数据,当遇到超载情况时,通过tag进行自动降频处理,具体如下:
108.1、分组单元处理完消息队列中当前tag对应的所有负载
109.2、分组单元获取消息队列中最新的tag
110.3、分组单元发送最新tag对应的负载信息
111.自动降频机制在超载情况下会根据tag对周期性发布数据进行自动降频处理,保证服务的可用性和及时性。当负载恢复正常后,自动恢复发布频率。从而通过标签机制实现周期性发布数据的自动降频处理,保证服务可用性。
112.请参阅图3,图3为本技术实施例提供了一种数据发送方法的流程示意图。如图3所示,应用于服务器,所述方法包括:
113.301、获取所述服务器的当前发送状态信息;
114.302、根据所述发送状态信息,确定所述待发送数据包的类型信息;
115.303、根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量;
116.304、从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;
117.305、发送所述待发送数据包。
118.可以根据待发送数据包的类型信息,确定待发送数据包的当前最大消息数量,并基于该当前最大消息数量和未发送的消息的数量来确定出待发送数据包的消息数量。因此,可以动态的确定出待发送数据包的消息数量,提升了发送时的可靠性以及降低了发送时延。
119.与上述实施例一致的,请参阅图4,图4为本技术实施例提供的一种服务器的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令;
120.获取所述服务器的当前发送状态信息;
121.根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;
122.从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;
123.发送所述待发送数据包。
124.上述主要从方法侧执行过程的角度对本技术实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
125.本技术实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
126.与上述一致的,请参阅图5,图5为本技术实施例提供了一种数据发送装置的结构示意图。如图5所示,应用于服务器,所述装置包括:
127.获取模块501,用于获取所述服务器的当前发送状态信息;
128.确定模块502,用于根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;
129.打包模块503,用于从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;
130.发送模块504,用于发送所述待发送数据包。
131.在一个可能的实现方式中,所述确定模块502用于:
132.根据所述发送状态信息,确定所述待发送数据包的类型信息;
133.根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
134.在一个可能的实现方式中,在所述根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量方面,所述确定模块502用于:
135.根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;
136.至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。
137.在一个可能的实现方式中,在所述至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量方面,所述确定模块502用于:
138.根据所述当前最大消息数量和预设消息量比例值区间,确定所述待发送数据包对应的第一消息数量区间;
139.根据所述消息列队中未发送的消息的数量,确定消息滞留等级;
140.根据所述消息滞留等级,确定第二消息数量区间;
141.根据所述第一消息数量区间和所述第二消息数量区间,确定第一参考消息数量区间;
142.获取所述消息队列中与所述待发送数据包对应的消息的消息属性;
143.根据所述消息属性确定第二参考消息数量区间;
144.根据所述第一参考消息数量区间和所述第二参考消息数量区间,确定所述待发送数据包的消息数量。
145.在一个可能的实现方式中,所述发送模块504用于:
146.将所述待发送消息传输至前置反馈队列;
147.根据所述发送状态信息,确定前置反馈队列的状态信息;
148.若所述前置反馈队列的状态信息为预设状态信息,则发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息
149.本技术实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据发送方法的部分或全部步骤。
150.本技术实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据发送方法的部分或全部步骤。
151.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
152.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
153.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
154.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
155.另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
156.所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
157.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
158.以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种数据发送方法,其特征在于,应用于服务器,所述方法包括:获取所述服务器的当前发送状态信息;根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;发送所述待发送数据包。2.根据权利要求1所述的方法,其特征在于,所述根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量,包括:根据所述发送状态信息,确定所述待发送数据包的类型信息;根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。3.根据权利要求2所述的方法,其特征在于,所述根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量,包括:根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。4.根据权利要求3所述的方法,其特征在于,所述至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量,包括:根据所述当前最大消息数量和预设消息量比例值区间,确定所述待发送数据包对应的第一消息数量区间;根据所述消息列队中未发送的消息的数量,确定消息滞留等级;根据所述消息滞留等级,确定第二消息数量区间;根据所述第一消息数量区间和所述第二消息数量区间,确定第一参考消息数量区间;获取所述消息队列中与所述待发送数据包对应的消息的消息属性;根据所述消息属性确定第二参考消息数量区间;根据所述第一参考消息数量区间和所述第二参考消息数量区间,确定所述待发送数据包的消息数量。5.根据权利要求2-4任一项所述的方法,其特征在于,所述发送所述待发送数据包,包括:将所述待发送消息传输至前置反馈队列;根据所述发送状态信息,确定前置反馈队列的状态信息;若所述前置反馈队列的状态信息为预设状态信息,则发送所述待发送数据包,以及暂停处理所述前置反馈队列之外的消息。6.一种数据发送装置,其特征在于,应用于服务器,所述装置包括:获取模块,用于获取所述服务器的当前发送状态信息;确定模块,用于根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;打包模块,用于从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处
理,以得到待发送数据包;发送模块,用于发送所述待发送数据包。7.根据权利要求6所述的装置,其特征在于,所述确定模块用于:根据所述发送状态信息,确定所述待发送数据包的类型信息;根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。8.根据权利要求7所述的装置,其特征在于,在所述根据所述待发送数据包的类型信息和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量方面,所述确定模块用于:根据所述待发送数据包的类型信息,确定待发送数据包的当前最大消息数量;至少根据所述当前最大消息数量和所述消息列队中未发送的消息的数量,确定所述待发送数据包的消息数量。9.一种服务器,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。

技术总结
本申请实施例提供一种数据发送方法及相关装置,应用于服务器,所述方法包括:获取所述服务器的当前发送状态信息;根据所述发送状态信息和消息列队中未发送的消息的数量,确定待发送数据包的消息数量;从所述消息队列中获取与所述消息数量对应的待发送消息进行打包处理,以得到待发送数据包;发送所述待发送数据包,能够根据当前的发送状态信息和消息列队中未发送的消息的数量确定出数据包的消息数量,并进行发送,从而可以动态的确定数据包的消息数量,减少了信息发送的时延。减少了信息发送的时延。减少了信息发送的时延。


技术研发人员:王鹏飞 谭浩通 谭笑 詹宇彬
受保护的技术使用者:深圳证券通信有限公司
技术研发日:2022.07.26
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-147.html

最新回复(0)