基于protobuf的数据处理方法、装置、介质及设备制造方法及图纸

技术编号:37105139 阅读:36 留言:0更新日期:2023-04-01 05:04
本公开涉及一种基于protobuf的数据处理方法、装置、介质及设备,包括:配置目标方法包package;通过目标方法包package中的数据结构定义类对一个或多个业务消息进行定义,创建得到包括业务消息的数据结构的消息定义对象;根据消息定义对象和业务数据生成属于目标消息类的业务消息对象,业务消息对象中包括业务数据和与业务数据对应的数据结构;将业务数据对象业务消息对象发送给数据接收方,其中,数据接收方配置有目标方法包package。这样,数据交互双方只需对目标方法包package进行配置一次,便可实现动态数据交互,不再受限于既有业务消息的数据结构定义,不仅使得数据交互双方的交互过程更加便捷,而且还解决了双方静态定义文件未完全同步时无法正常进行数据交互的问题。问题。问题。

【技术实现步骤摘要】
基于protobuf的数据处理方法、装置、介质及设备


[0001]本公开涉及数据处理领域,具体地,涉及一种基于protobuf的数据处理方法、装置、介质及设备。

技术介绍

[0002]protocol buffers是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。protobuf提供了一个接口描述语言,描述一些数据结构,并提供程序工具根据这些定义产生代码,用于将这些数据结构产生或解析资料流。但是protobuf仅支持通过编写protobuf格式的结构描述文件静态地定义接口格式,在实际使用中数据格式可能需要随着业务需求而动态调整,或者需要针对不同的业务场景自动生成对应的protobuf定义。例如,服务平台在需要承接多种不同业务方的数据存储和检索需求的情况下,在兼容各业务方的定义的同时,需要封装统一的格式以便管理。如果仅使用protobuf自身所提供的静态数据定义的功能,平台可能需要持有并维护所有业务方的pb定义,并且要设计同步更新的方案,不仅维护成本很高,而且还容易出现平台和业务方的pb定义不统一,而导致的业务数据无法正常传输的问题。

技术实现思路

[0003]本公开的目的是提供一种基于protobuf的数据处理方法、装置、介质及设备,以部分地解决相关技术中存在的上述问题。
[0004]为了实现上述目的,本公开提供一种基于protobuf的数据处理方法,应用于数据发送方,所述方法包括:
[0005]配置目标方法包package;
[0006]通过所述目标方法包package中的数据结构定义类对一个或多个业务消息进行定义,创建得到包括所述业务消息的数据结构的消息定义对象;
[0007]根据所述消息定义对象和业务数据生成属于目标消息类的业务消息对象,所述业务消息对象中包括所述业务数据和与所述业务数据对应的所述数据结构,其中,所述业务消息对象的内容符合protobuf的编写规范,所述目标消息类为所述目标方法包package中定义的类;
[0008]将所述业务消息对象发送给数据接收方,其中,所述数据接收方配置有所述目标方法包package。
[0009]可选地,所述业务消息对象中所包括的所述业务数据和与所述业务数据对应的所述数据结构以数组形式存在于所述业务消息对象中。
[0010]可选地,所述业务消息对象中包括的所述业务数据中,包括属性名称和与所述属性名称对应的业务数据值;所述业务消息对象中所包括的与所述业务数据对应的所述数据结构中,也包括所述属性名称,以及与所述属性名称对应的属性类型和属性标签。
[0011]可选地,所述将所述业务消息对象发送给数据接收方包括:
[0012]根据protobuf提供的序列化方法对所述业务消息对象进行序列化后发送给所述数据接收方。
[0013]本公开还提供一种基于protobuf的数据处理方法,应用于数据接收方,所述方法包括:
[0014]配置目标方法包package;
[0015]接收数据发送方发送的业务消息对象,所述业务消息对象中包括业务数据和与所述业务数据对应的所述数据结构,所述业务消息对象所属类型为目标消息类;
[0016]根据所述目标方法包package中的对所述目标消息类的定义对所述业务消息对象进行解析,以根据所述业务数据对应的所述数据结构解析得到所述业务数据。
[0017]可选地,在所述业务消息对象为经过protobuf提供的序列化方法进行序列化之后的数据时,在所述根据所述目标方法包package中的对所述目标消息类的定义对所述业务消息对象进行解析之前,所述方法还包括:
[0018]根据protobuf提供的反序列方法对所述业务消息对象进行反序列化。
[0019]本公开还提供一种基于protobuf的数据处理装置,应用于数据发送方,所述装置包括:
[0020]第一配置模块,用于配置目标方法包package;
[0021]消息定义模块,用于通过所述目标方法包package中的数据结构定义类对一个或多个业务消息进行定义,创建得到包括所述业务消息的数据结构的消息定义对象;
[0022]对象生成模块,用于根据所述消息定义对象和业务数据生成属于目标消息类的业务消息对象,所述业务消息对象中包括所述业务数据和与所述业务数据对应的所述数据结构,其中,所述业务消息对象的内容符合protobuf的编写规范,所述目标消息类为所述目标方法包package中定义的类;
[0023]发送模块,用于将所述业务消息对象发送给数据接收方,其中,所述数据接收方配置有所述目标方法包package。
[0024]本公开还提供一种基于protobuf的数据处理装置,应用于数据接收方,所述装置包括:
[0025]第二配置模块,用于配置目标方法包package;
[0026]接收模块,用于接收数据发送方发送的业务消息对象,所述业务消息对象中包括业务数据和与所述业务数据对应的所述数据结构,所述业务消息对象所属类型为目标消息类;
[0027]解析模块,用于根据所述目标方法包package中的对所述目标消息类的定义对所述业务消息对象进行解析,以根据所述业务数据对应的所述数据结构解析得到所述业务数据。
[0028]本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所述方法的步骤。
[0029]本公开还提供一种电子设备,包括:
[0030]存储器,其上存储有计算机程序;
[0031]处理器,用于执行所述存储器中的所述计算机程序,以实现以上所述方法的步骤。
[0032]本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理
器执行时实现以上所述方法的步骤。
[0033]本公开还提供一种电子设备包括:
[0034]存储器,其上存储有计算机程序;
[0035]处理器,用于执行所述存储器中的所述计算机程序,以实现以上所述方法的步骤。
[0036]通过上述技术方案,数据发送方和数据接收方在基于protobuf的架构上无需再依赖静态描述文件来进行数据交互,双方只需对目标方法包package进行配置一次,便可实现动态数据交互,无需在每次消息定义发生变化时都对另一方中保存的消息定义进行配套修改,直接根据当前的业务消息定义来动态生成该业务消息对象以业务数据即可,不再受限于既有业务消息的数据结构定义,不仅使得数据交互双方的交互过程更加便捷,而且还解决了双方静态定义文件未完全同步时无法正常进行数据交互的问题。
[0037]本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0038]附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0039]图1是根据本公开一示例性实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于protobuf的数据处理方法,应用于数据发送方,其特征在于,所述方法包括:配置目标方法包package;通过所述目标方法包package中的数据结构定义类对一个或多个业务消息进行定义,创建得到包括所述业务消息的数据结构的消息定义对象;根据所述消息定义对象和业务数据生成属于目标消息类的业务消息对象,所述业务消息对象中包括所述业务数据和与所述业务数据对应的所述数据结构,其中,所述业务消息对象的内容符合protobuf的编写规范,所述目标消息类为所述目标方法包package中定义的类;将所述业务消息对象发送给数据接收方,其中,所述数据接收方配置有所述目标方法包package。2.根据权利要求1所述的方法,其特征在于,所述业务消息对象中所包括的所述业务数据和与所述业务数据对应的所述数据结构以数组形式存在于所述业务消息对象中。3.根据权利要求2所述的方法,其特征在于,所述业务消息对象中包括的所述业务数据中,包括属性名称和与所述属性名称对应的业务数据值;所述业务消息对象中所包括的与所述业务数据对应的所述数据结构中,也包括所述属性名称,以及与所述属性名称对应的属性类型和属性标签。4.根据权利要求1所述的方法,其特征在于,所述将所述业务消息对象发送给数据接收方包括:根据protobuf提供的序列化方法对所述业务消息对象进行序列化后发送给所述数据接收方。5.一种基于protobuf的数据处理方法,应用于数据接收方,其特征在于,所述方法包括:配置目标方法包package;接收数据发送方发送的业务消息对象,所述业务消息对象中包括业务数据和与所述业务数据对应的所述数据结构,所述业务消息对象所属类型为目标消息类;根据所述目标方法包package中的对所述目标消息类的定义对所述业务消息对象进行解析,以根据所述业务数据对应的所述数据结构解析得到所述业务数据。6.根据权利要求5所述的方法,其特征在于,在所述业务消息对象为经过protobuf提供的序列化方法进行序列化之后的数据时,在所述根据所述目标方法包package中的对所述目标消息类的定义对所述业务消息对象进行解析之前,所述方法还包括:根据protobuf提供的反序列方法对...

【专利技术属性】
技术研发人员:季尚
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:

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

1