消息打包与接收方法、装置、电子设备和介质制造方法及图纸

技术编号:26606186 阅读:31 留言:0更新日期:2020-12-04 21:30
本公开提供一种消息打包与接收方法、装置、电子设备和介质,涉及信息技术领域。所述消息打包方法包括:对待打包的多条消息进行打包,生成第一数据包;至少基于第一数据包所包括的消息的数量,按照预设的规则生成第一数据包的第一编码信息;以及将第一数据包和第一数据包的第一编码信息发送至服务端。所述消息接收方法包括:接收来自客户端的第一数据包和第一数据包的第一编码信息,第一编码信息与第一数据包所包括的消息的数量相关;基于第一编码信息和上一次存储的第二数据包的第二编码信息,确定过滤信息,过滤信息指示是否对第一数据包进行过滤。

【技术实现步骤摘要】
消息打包与接收方法、装置、电子设备和介质
本公开涉及信息
,尤其涉及一种消息打包与接收方法、装置、电子设备和介质。
技术介绍
在信息
,消息系统通常使用分布式消息队列的方式对消息进行存储。消息系统可以接收客户端传输的消息并存储,也可以基于客户端的订阅向客户端推送消息。根据相关技术,客户端将待传输的消息打包成数据包,再以数据包的形式传输至消息系统。消息系统可以基于客户端的订阅将相应的数据包推送给客户端。在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
根据本公开的一方面,提供一种消息打包方法,包括:对待打包的多条消息进行打包,生成第一数据包;至少基于所述第一数据包所包括的消息的数量,按照预设的规则生成所述第一数据包的第一编码信息;以及将所述第一数据包和所述第一数据包的第一编码信息发送至服务端。根据本公开的另一方面,还提供一种消息接收方法,包括:接收来自客户端的第一数据包和所述第一数据包的第一编码信息,所述第一编码信息与所述第一数据包所包括的消息的数量相关;基于所述第一编码信息和上一次存储的第二数据包的第二编码信息,确定过滤信息,所述过滤信息指示是否对所述第一数据包进行过滤。根据本公开的另一方面,还提供一种消息打包装置,包括:打包单元,被配置为对待打包的多条消息进行打包,生成第一数据包;编码单元,被配置为至少基于所述第一数据包所包括的消息的数量,生成所述第一数据包的第一编码信息;以及发送单元,被配置为将所述第一数据包和所述第一数据包的第一编码信息发送至服务端。根据本公开的另一方面,还提供一种消息接收装置,包括:接收单元,被配置为接收来自客户端的第一数据包和所述第一数据包的第一编码信息,所述第一编码信息与所述第一数据包所包括的消息的数量相关;以及确定单元,被配置为基于所述第一编码信息和上一次存储的第二数据包的第二编码信息,确定过滤信息,所述过滤信息指示是否对所述第一数据包进行过滤。根据本公开的又一方面,还提供一种电子设备,包括:处理器;以及存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述的消息打包方法和消息接收方法。根据本公开的又一方面,还提供一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据上述的消息打包方法和消息接收方法。在本公开的一个或多个实施例中,基于数据包所包括的消息的数量,按照预设的规则生成数据包的编码信息,并基于编码信息对消息进行过滤,有助于兼顾在流量高峰期对于消息传输的高吞吐量的要求和在流量低谷期对于消息传输的低延迟的要求,并同时保证传输的消息不重不丢。附图说明附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。图1是示出根据本公开的示例性实施例的消息打包方法的流程图;图2和图3是示出利用本公开的示例性实施例的消息打包方法和消息接收方法来进行消息传输的示例过程的示意图;图4是示出根据本公开的示例性实施例的消息接收方法的流程图;图5是示出根据本公开的示例性实施例的消息打包装置的框图;图6是示出根据本公开的示例性实施例的消息接收装置的框图;图7是示出能够应用于示例实施例的示例性计算机系统的结构框图。具体实施方式在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。在信息
中,消息系统(例如,Kafka、pulsar、Datahub)通常使用分布式消息队列的方式对消息进行存储。根据相关技术,客户端将待传输的消息打包成固定大小的数据包,并对数据包进行编码。数据包及其编码一并传输至消息系统。消息系统将接收的数据包成功存储后,生成包括最新存储的数据包的编码的响应信息反馈至客户端。从而能够实现消息系统和客户端的数据包编码信息同步更新,消息系统能够基于接收的数据包的编码对数据包进行过滤或存储,实现消息不重不丢。但是,由于多数业务流量都存在流量潮汐现象,即存在流量的高峰期和流量的低谷期。在流量高峰期,为了降低网络IO,提高吞吐,可以尽可能调大数据包的消息条数;在流量低峰期,为了减少发布延迟,提高时效性,可以调小数据包的消息条数,尽可能快地发布。因此,固定大小的数据包无法兼顾在流量高峰期对于消息传输的高吞吐量的要求和在流量低谷期对于消息传输的低延迟的要求。为了解决上述技术问题,本公开提供了一种消息打包方法以及消息接收方法的改进方案。该改进方案中,在客户端至少基于数据包所包括的消息的数量生成数据包的编码信息,并将数据包及其编码信息一起发送至服务端。服务端根据上一次存储的数据包的编码信息和接收的数据包的编码信息对接收的数据包进行部分过滤、全部过滤或直接存储。由此,通过设置数据包的编码信息与数据包所包括的消息数量相关,从而能够在数据包部分重发的情况下,实现对接收的数据包进行部分过滤,克服了相关技术中将数据包作为一个整体进行编码,无法实现对数据包的部分过滤而导致消息丢失的问题。从而能够实现根据需求调整数据包的大小并保证消息不重不丢,能够兼顾流量高峰期的高吞吐量与流量低谷期的低延迟的要求。以下将结合附图对根据本公开实施例的消息打包以及消息接收方法进行进一步描述。图1是示出根据本公开的示例性实施例的消息打包方法的流程图。如图1所示,所述消息打包方法可以包括:步骤S101,对待打包的多条消息进行打包,生成第一数据包;步骤S102,至少基于所述第一数据包所包括的消息的数量,按照预设的规则生成所述第一数据包的第一编码信息;以及步骤S103,将所述第一数据包和所述第一数据包的第一编码信息发送至服务端。由此,通过至少基于第一数据包所包括的消息的数量来生成待传输的第一数据包的编码信息,能够实现服务端根据上一次存储的数据包的编码信息和接收的数据包的编码信息判断接收的数据包是否部分重复,从而能够在数据包部分重复的情况下实现对第一数据包的部分过滤,保证传输的消息不重不丢,具体的原理将在下面内容中描述。进而能够实现根据需求调整数本文档来自技高网
...

【技术保护点】
1.一种消息打包方法,包括:/n对待打包的多条消息进行打包,生成第一数据包;/n至少基于所述第一数据包所包括的消息的数量,按照预设的规则生成所述第一数据包的第一编码信息;以及/n将所述第一数据包和所述第一数据包的第一编码信息发送至服务端。/n

【技术特征摘要】
1.一种消息打包方法,包括:
对待打包的多条消息进行打包,生成第一数据包;
至少基于所述第一数据包所包括的消息的数量,按照预设的规则生成所述第一数据包的第一编码信息;以及
将所述第一数据包和所述第一数据包的第一编码信息发送至服务端。


2.如权利要求1所述的消息打包方法,还包括:
获取与所述第一数据包相关的设置参数,
其中,所述待打包的多条消息的数量为基于所述设置参数而确定。


3.如权利要求2所述的消息打包方法,其中,所述设置参数包括预设时长,所述待打包的多条消息为所述预设时长内输入的多条消息。


4.如权利要求2所述的消息打包方法,其中,所述设置参数包括预设数值,所述待打包的多条消息的数量为所述预设数值。


5.如权利要求1-4中任一项所述的消息打包方法,还包括:
获取来自所述服务端的最新响应信息,所述最新响应信息包括相应的所述服务端存储的第二数据包的第二编码信息,
其中,生成所述第一数据包的第一编码信息包括:
基于来自所述服务端的最新响应信息所包括的所述第二编码信息和所述第一数据包所包括的消息的数量,生成所述第一数据包的第一编码信息。


6.如权利要求5所述的消息打包方法,其中,所述第二编码信息包括与所述最新响应信息相应的所述服务端存储的第二数据包的最大消息编号。


7.一种消息接收方法,包括:
接收来自客户端的第一数据包和所述第一数据包的第一编码信息,所述第一编码信息与所述第一数据包所包括的消息的数量相关;
基于所述第一编码信息和上一次存储的第二数据包的第二编码信息,确定过滤信息,所述过滤信息指示是否对所述第一数据包进行过滤。


8.如权利要求7所述的消息接收方法,还包括:
响应于所述过滤信息指示对所述第一数据包进行过滤,基于所述第一编码信息和上一次存储的第二数据包的第二编码信息,对接收到的所述第一数据包执行过滤。


9.如权利要求8所述的消息接收方法,对接收到的所述第一数据包进行过滤包括:
基于所述第一编码信息和上一次存储的第二数据包的第二编码信息,确定待删除的消息的数量;以及
至少基于所确定的待删除的消息的数量,对接收到的所述第一数据包执行部分过滤,以删除重复的消息,得到过滤后的至少一条消息。


10.如权利要求9所述的消息接收方法,还包括:
对所述过滤后的至少一条消息进行打包,生成第二数据包并存储;以及
基于所述上一次存储的第二数据包的第二编码信息和最新存储的第二数据包所包括的消息的数量,生成最新存储的第二数据包的第二编码信息。


11.如权利要求8所述的消息接收方法,还包括:
基于所述第一数据包和所得到的所述过滤信息,生成第二数据包并存储;
基于所述上一次存储的第二数据包的第二编码信息和最新存储的第二数据包所包括的消息的数量,生成最新存储的第二数据包的第二编码信息;
生成与所述最新存储的第二数据包相关的响应信息,所述响应信息包括所述最新存储的第二数据包的第...

【专利技术属性】
技术研发人员:谢维柱李树毫邢越
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1