CN111930531A - 数据处理、数据生产、数据消费方法、装置、设备及介质 - Google Patents
数据处理、数据生产、数据消费方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111930531A CN111930531A CN202010625243.XA CN202010625243A CN111930531A CN 111930531 A CN111930531 A CN 111930531A CN 202010625243 A CN202010625243 A CN 202010625243A CN 111930531 A CN111930531 A CN 111930531A
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- production
- annotation
- processing
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备和介质,包括:获取针对第一方法标注的注解,根据注解对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的目标数据进行封装,形成生产数据,将生产数据传输至消息中间件,获取生产数据,采用预设协议对生产数据进行解析得到序列化处理的目标数据,确定目标数据由标注有注解的第二方法处理,对目标数据进行反序列化处理,根据第二方法对目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据处理方法、一种数据生产方法、一种数据消费方法、一种数据处理装置、一种数据生产装置、一种数据消费装置、一种电子设备和一种计算机可读存储介质。
背景技术
随着互联网的迅猛发展,各式各样的服务大量产生,在这些服务中会经常看到异步处理的业务场景,常见的异步处理技术有三种:第一,直接在应用进程中开启一个新的子进程执行业务逻辑;第二,为避免服务宕机造成数据丢失,先将数据写入关系型数据库,然后再异步处理数据,处理完后更新记录状态;第三,基于消息中间件实现异步化业务处理。
本申请人经研究发现,微服务中有很多异步化处理的业务场景,常用到前面提到的三种技术实现异步化处理,在使用过程中发现很多服务会重复的处理一些异步化带来的相同问题,使用消息实现异步化时问题还比较频繁。采用第一种技术时,直接开启子进程进行异步处理,所有服务都要格外小心的处理服务宕机或者异常,以免造成数据丢失;采用第二种技术时,依赖常见的关系型数据库先存储数据再异步处理,会因为数据库瓶颈很难应付高并发场景;采用第三种技术时,消息格式大多序列化成字符串,但还是要重复的在代码中开发消息***,在***中将字符串数据反序列化到指定对象实体中,开发成本较高。
发明内容
本发明实施例的目的在于提供一种数据处理方法、一种数据生产方法、一种数据消费方法、一种数据处理装置、一种数据生产装置、一种数据消费装置、一种电子设备和一种计算机可读存储介质,从而解决异步化的开发和维护效率低的问题。
为了解决上述问题,在本发明实施的第一方面,首先提供了一种数据处理方法,包括:
数据生产端获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件;
数据消费端通过所述消息中间件获取所述生产数据;
采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
对所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
在本发明实施的第二方面,还提供了一种数据生产方法,包括:
获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
可选地,所述根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理包括:
根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
利用所述第一动态代理对象,对所述目标数据进行序列化处理。
可选地,在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,所述方法还包括:
利用所述第一动态代理对象,检测所述目标数据的发送速度;
当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
在本发明实施的第三方面,还提供了一种数据消费方法,其特征在于,包括:
通过消息中间件获取生产数据;
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
对序列化处理的所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
可选地,所述采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
可选地,在所述对序列化处理的所述目标数据进行反序列化处理之前,所述方法还包括:
根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述对序列化处理的所述目标数据进行反序列化处理包括:
利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
可选地,在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,所述方法还包括:
利用所述第二动态代理对象,检测所述目标数据的接收速度;
当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
在本发明实施的第四方面,还提供了一种数据处理装置,包括:
注解获取模块,用于数据生产端获取针对第一方法标注的注解;
序列化封装模块,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块,用于将所述生产数据传输至消息中间件;
数据获取模块,用于数据消费端通过所述消息中间件获取所述生产数据;
解析模块,用于采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
反序列化模块,用于对所述目标数据进行反序列化处理;
处理模块,用于根据所述第二方法对所述目标数据进行处理。
在本发明实施的第五方面,还提供了一种数据生产装置,包括:
注解获取模块,用于获取针对第一方法标注的注解;
序列化模块,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
封装模块,用于根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块,用于将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
可选地,所述序列化模块包括:
对象创建子模块,用于根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
序列化子模块,用于利用所述第一动态代理对象,对所述目标数据进行序列化处理。
可选地,所述装置还包括:
速度检测模块,用于在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,利用所述第一动态代理对象,检测所述目标数据的发送速度;
暂停恢复模块,用于当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
在本发明实施的第六方面,还提供了一种数据消费装置,包括:
数据获取模块,用于通过消息中间件获取生产数据;
解析模块,用于采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
反序列化模块,用于对序列化处理的所述目标数据进行反序列化处理;
处理模块,用于根据所述第二方法对所述目标数据进行处理。
可选地,所述解析模块包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
可选地,所述装置还包括:
对象创建模块,用于在所述对序列化处理的所述目标数据进行反序列化处理之前,根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述反序列化模块,具体用于利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
可选地,所述装置还包括:
速度检测模块,用于在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,利用所述第二动态代理对象,检测所述目标数据的接收速度;
暂停恢复模块,用于当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
综上所述,依据本发明实施例,通过数据生产端获取针对第一方法标注的注解,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据,将所述生产数据传输至消息中间件,数据消费端通过所述消息中间件获取所述生产数据,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理,其中,所述第二方法标注有所述注解,对所述目标数据进行反序列化处理,根据所述第二方法对所述目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
附图说明
图1示出了本发明的一种数据处理方法实施例的步骤流程图;
图2示出了本发明的一种数据生产方法实施例的步骤流程图;
图3示出了异步处理流程的示意图;
图4示出了本发明的一种数据消费方法实施例的步骤流程图;
图5示出了本发明一种数据处理装置实施例的结构框图;
图6示出了本发明一种数据生产装置实施例的结构框图;
图7示出了本发明一种数据消费装置实施例的结构框图;
图8示出了本发明一实施例的一种电子设备的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,数据生产端获取针对第一方法标注的注解。
在本发明实施例中,数据生产端和数据消费端可以部署在服务器、客户端等,可以响应于请求实现特定的功能。数据生产端和数据消费端可以部署在同一个服务器上,也可以部署在不同的服务器上。
在本发明实施例中,注解是一种代码级别的说明,可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。为了实现第一方法异步调用第二方法,在数据生产端对应的源代码中通过注解的方式声明第一方法需要将待异步处理的目标数据发送给数据消费端。这样,在数据生产端的处理过程中,当调用标注有上述注解的第一方法,会自动获取第一方法生产的目标数据并将目标数据发送给数据消费端。
在本发明实施例中,获取针对第一方法标注的注解的具体方式包括:在服务启动时,扫描应用的安装包路径下的被该注解声明的第一方法,并解析第一方法以及第一方法的参数,将解析的元数据(如方法的类名、方法名、方法的参数类型、参数顺序等)存在全局内存中。
需要说明的是,上述注解可以是在业务开发阶段进行标注的,在业务开发阶段对方法中需要异步调用的调用者和被调用者进行标注,实际上就是声明该方法需要异步调用。
步骤102,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据。
在本发明实施例中,注解标注在第一方法上,当调用方法时,自动触发针对第一方法生产的目标数据的发送流程。发送流程包括对待处理的目标数据进行序列化处理,得到序列化处理的目标数据,再采用预设协议对序列化处理的目标数据进行封装,形成生产数据。
其中,序列化是将对象转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。例如,将目标数据序列化成JSON(JavaScript ObjectNotation,一种轻量级的数据交换格式)或者纯文本的字符串数据。
其中,预设协议用于数据的发送和处理,目标数据会被封装到协议中,数据发送时按照预设协议封装数据,将封装得到的数据称为生产数据。例如,根据预设协议,对目标数据存放的队列名(topic)、第一方法的方法签名(method)和序列化处理的目标数据进行封装,得到生产数据。
步骤103,将所述生产数据传输至消息中间件。
步骤104,数据消费端通过所述消息中间件获取所述生产数据。
在本发明实施例中,消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的***中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。将生产数据发送给消息中间件,以经过消息中间件传递至数据消费端。
在本发明实施例中,为异步处理设计的注解应用在类和方法上,当调用第一方法时,通过消息客户端发送生产数据给消息中间件,消息中间件会在合适的时候再将消息转发给数据消费端。数据消费端可以通过同一消息中间件的消息***实例来接收消息中间件传递来的生产数据。
步骤105,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解。
在本发明实施例中,在数据消费端,从消息中间件接收生产数据后,根据预设协议解析生产数据,可以得到序列化的目标数据。例如,根据预设协议,解析生产数据,得到目标数据存放的队列名(topic)、第一方法的方法签名(method)和序列化处理的目标数据。
在本发明实施例中,在数据消费端对应的源代码中通过注解的方式声明第二方法需要接收待异步处理的目标数据。这样,在数据消费端的处理过程中,确定目标数据由第二方法处理,以便后续自动获取目标数据并将目标数据传递给第二方法。
在本发明实施例中,数据消费端在服务启动时,扫描应用的安装包路径下的被该注解声明的第二方法,解析第二方法以及第二方法的参数,将解析的元数据(如方法的类名、方法名、方法的参数类型、参数顺序等)存在全局内存中。
步骤106,对所述目标数据进行反序列化处理。
在本发明实施例中,从生产数据中解析得到序列化的目标数据后,再进行反序列化处理,得到目标数据,传递至第二方法。其中,反序列化是将可以存储或传输的形式的数据转换为对象的过程。例如,将JSON(JavaScript Object Notation,一种轻量级的数据交换格式)或者纯文本的字符串数据反序列化成目标数据对应的对象。
步骤107,根据所述第二方法对所述目标数据进行处理。
在本发明实施例中,将目标方法传递至第二方法后,根据第二方法对目标数据进行处理,也即是对于第一方法来说,对目标数据进行异步处理。
综上所述,依据本发明实施例,通过数据生产端获取针对第一方法标注的注解,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据,将所述生产数据传输至消息中间件,数据消费端通过所述消息中间件获取所述生产数据,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理,其中,所述第二方法标注有所述注解,对所述目标数据进行反序列化处理,根据所述第二方法对所述目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
参照图2,示出了本发明的一种数据生产方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,获取针对第一方法标注的注解。
步骤202,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理。
步骤203,根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据。
步骤204,将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
在本发明实施例中,上述步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
在本发明的一种实施例中,可选地,步骤202包括:
步骤2021,根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象。
在本发明实施例中,动态代理是一种代理模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理类在程序运行时创建的代理方式被成为动态代理。将动态代理中的代理对象称为动态代理对象。根据针对第一方法标注的注解,创建代理第一方法的动态代理对象,记为第一动态代理对象。
在本发明实施例中,为每个对象初始化之后,会找到这个对象对应的接口所对应的注解,并根据该注解的属性,生成动态代理对象。在具体实施时,利用动态代理来代理被注解方法的类,同时创建代理类的实体类放在内存中。通过依赖注入的方式,将调用被注解的方法所依赖的实例替换为代理类的实例。
步骤2022,利用所述第一动态代理对象,对所述目标数据进行序列化。
在本发明实施例中,当有业务对相应注解的接口进行调用时,第一动态代理对象就会对目标数据进行序列化。通过动态代理可以实现无侵入式的代码拓展,在不用修改第一方法的源码的情况下,实现对第一方法产生的目标数据的序列化。
在一种实现方式中,创建一个上下文(Context)实例,上下文实例提供一个多参数的方法,调用该方法发送数据,上下文实例可以根据参数顺序和参数类型找到标注注解的第一方法,并调用其代理类方法,即第一动态代理对象,对目标数据进行序列化处理,然后根据预设协议封装序列化处理的目标数据得到生产数据。
在本发明的一种实施例中,可选地,在步骤203之前,还可以包括:利用所述第一动态代理对象,检测所述目标数据的发送速度,当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
在数据生产端,利用第一动态代理对象拦截目标数据,并控制目标数据的发送速度,从而避免发送速度过快导致消息中间件无法及时处理造成数据丢失,以及发送速度过慢导致消息中间件利用率低的问题,从而同时保证数据不会丢失并支持高并发的业务场景。
具体的,利用第一动态代理对象拦截目标数据,检测目标数据的发送速度,当发送速度超过设定发送速度时,则暂停目标数据的发送,然后在间隔第一设定时长后,恢复目标数据的发送,从而在发送速度没有过快时,不对发送速度进行限制,在发送速度过快时,则通过暂停一段时间来减慢数据的发送速度。
例如,如图3所示的异步处理流程的示意图,ServiceA(即数据生产端服务)和ServiceB(即数据消费端服务)之间有消息中间件服务,在ServiceA的处理过程中,调用ServiceA中@AsyncMethod注解的方法(即第一方法),通过代理类(即第一动态代理对象)对数据序列化处理和执行***控制发送速度,对目标数据进行序列化,以及拦截目标数据,然后第一方法的AsyncMessageContext上下文实例按照预设协议封装目标数据,通过消息客户端发送封装的数据至消息中间件服务,即生产(produce)目标数据,消息中间件服务将封装的生产数据传递至ServiceB。
综上所述,依据本发明实施例,通过数据生产端获取针对第一方法标注的注解,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据,将所述生产数据发送至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
参照图4,示出了本发明的一种数据消费方法实施例的步骤流程图,具体可以包括如下步骤:
步骤301,通过消息中间件获取生产数据。
步骤302,采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解。
步骤303,对序列化处理的所述目标数据进行反序列化处理。
步骤304,根据所述第二方法对所述目标数据进行处理。
在本发明实施例中,上述步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
在本发明的一种实施例中,可选地,步骤302包括:
步骤3021,采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名。
步骤3022,确定所述目标数据由所述方法签名对应的第二方法处理。
方法名和形式参数列表共同组成方法签名。方法头指定修饰符(例如static)、返回值类型、方法名、和形式参数。方法头中定义的变量称为形式参数,形式参数如同占位符。当方法被调用时,传递一个值给形式参数,此值称为实际参数,形式参数列表指的是形式参数的类型、顺序和形式参数的数目。
在本发明实施例中,数据生产端获取第一方法的方法签名和序列化处理的目标数据,根据预设协议封装得到生产数据。例如,数据生产端在对序列化处理的目标数据进行封装时,根据预设协议封装队列名、方法签名和序列化的所述目标数据,得到生产数据。数据消费端采用预设协议对生产数据进行解析,可以得到序列化处理的目标数据以及第一方法的方法签名。
在本发明实施例中,根据第一方法的方法签名,可以确定对应的标注注解的第二方法,从而确定由第二方法处理目标数据。在一种实现方式中,根据解析出第一方法的方法签名,自动找到处理数据的第二方法,之后反序列化数据并绑定到第二方法的参数上,以便后续调用第二方法执行业务处理逻辑。
在本发明的一种实施例中,可选地,在步骤303之前还包括:根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象。
步骤303包括:利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
在本发明实施例中,根据针对第二方法标注的注解,创建代理第二方法的动态代理对象,记为第二动态代理对象。在具体实施时,利用动态代理来代理被注解方法的类,同时创建代理类的实体类放在内存中。通过依赖注入的方式,将调用被注解的方法所依赖的实例替换为代理类的实例。
在本发明实施例中,当有业务对相应注解的接口进行调用时,第二动态代理对象就会对序列化处理的目标数据进行反序列化。
在本发明的一种实施例中,可选地,在利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,还可以包括:利用所述第一动态代理对象,检测所述目标数据的接收速度,当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
在数据消费端,利用第二动态代理对象拦截目标数据,并控制目标数据的接收速度,从而避免接收速度过慢导致消息中间件无法及时处理造成数据丢失,以及接收速度过快导致消息中间件利用率低的问题,从而同时保证数据不会丢失并支持高并发的业务场景。
具体的,利用第二动态代理对象拦截目标数据,检测目标数据的接收速度,当接收速度超过设定接收速度时,则暂停目标数据的接收,然后在间隔第二设定时长后,恢复目标数据的接收,从而在接收速度没有过快时,不对接收速度进行限制,在接收速度过快时,则通过暂停一段时间来减慢数据的接收速度。
例如,如图3所示的异步处理流程的示意图,在ServiceB的处理过程中,利用统一消息中间件的消息***实例接收传递来的生产数据,即消耗(consume)目标数据,然后第二方法的AsyncMessageContext上下文实例按照预设协议解析生产数据,并匹配第二方法对应的代理封装类(即第二动态代理对象),通过代理封装类完成数据解析、反序列化和执行***控制接收速度,对目标数据进行反序列化,以及拦截目标数据,调用ServiceB中@AsyncMethod注解的方法(即第二方法),对目标数据进行异步处理,实现业务逻辑。
综上所述,依据本发明实施例,通过数据消费端通过所述消息中间件获取所述生产数据,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理,其中,所述第二方法标注有所述注解,对所述目标数据进行反序列化处理,根据所述第二方法对所述目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明一种数据处理装置实施例的结构框图,具体可以包括如下模块:
注解获取模块401,用于数据生产端获取针对第一方法标注的注解;
序列化封装模块402,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块403,用于将所述生产数据传输至消息中间件;
数据获取模块404,用于数据消费端通过所述消息中间件获取所述生产数据;
解析模块405,用于采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
反序列化模块406,用于对所述目标数据进行反序列化处理;
处理模块407,用于根据所述第二方法对所述目标数据进行处理。
综上所述,依据本发明实施例,通过数据生产端获取针对第一方法标注的注解,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据,将所述生产数据传输至消息中间件,数据消费端通过所述消息中间件获取所述生产数据,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理,其中,所述第二方法标注有所述注解,对所述目标数据进行反序列化处理,根据所述第二方法对所述目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
参照图6,示出了本发明一种数据生产装置实施例的结构框图,具体可以包括如下模块:
注解获取模块501,用于获取针对第一方法标注的注解;
序列化模块502,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
封装模块503,用于根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块504,用于将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
在本发明实施例中,可选地,所述序列化模块包括:
对象创建子模块,用于根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
序列化子模块,用于利用所述第一动态代理对象,对所述目标数据进行序列化处理。
在本发明实施例中,可选地,所述装置还包括:
速度检测模块,用于在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,利用所述第一动态代理对象,检测所述目标数据的发送速度;
暂停恢复模块,用于当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
综上所述,依据本发明实施例,通过数据生产端获取针对第一方法标注的注解,根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据,将所述生产数据发送至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
参照图7,示出了本发明一种数据消费装置实施例的结构框图,具体可以包括如下模块:
数据获取模块601,用于通过消息中间件获取生产数据;
解析模块602,用于采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
反序列化模块603,用于对序列化处理的所述目标数据进行反序列化处理;
处理模块604,用于根据所述第二方法对所述目标数据进行处理。
在本发明实施例中,可选地,所述解析模块包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
在本发明实施例中,可选地,所述装置还包括:
对象创建模块,用于在所述对序列化处理的所述目标数据进行反序列化处理之前,根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述反序列化模块,具体用于利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
在本发明实施例中,可选地,所述装置还包括:
速度检测模块,用于在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,利用所述第二动态代理对象,检测所述目标数据的接收速度;
暂停恢复模块,用于当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
综上所述,依据本发明实施例,通过数据消费端通过所述消息中间件获取所述生产数据,采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理,其中,所述第二方法标注有所述注解,对所述目标数据进行反序列化处理,根据所述第二方法对所述目标数据进行处理,使得实现业务逻辑的代码与实现异步处理的代码分离开来,开发人员不必根据不同的业务不断重复开发实现异步处理的代码,降低了使用消息中间件实现异步处理时各种配置和代码开发所带来的工作量,从而实现一次开发多次复用,提高数据生产消费流程中的自动化程度,提升开发和维护代码的效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
数据生产端获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件;
数据消费端通过所述消息中间件获取所述生产数据;
采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
对所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
可选地,所述根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理包括:
根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
利用所述第一动态代理对象,对所述目标数据进行序列化处理。
可选地,在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,所述方法还包括:
利用所述第一动态代理对象,检测所述目标数据的发送速度;
当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
通过消息中间件获取生产数据;
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
对序列化处理的所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
可选地,所述采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
可选地,在所述对序列化处理的所述目标数据进行反序列化处理之前,所述方法还包括:
根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述对序列化处理的所述目标数据进行反序列化处理包括:
利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
可选地,在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,所述方法还包括:
利用所述第二动态代理对象,检测所述目标数据的接收速度;
当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (18)
1.数据处理方法,其特征在于,包括:
数据生产端获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件;
数据消费端通过所述消息中间件获取所述生产数据;
采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
对所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
2.一种数据生产方法,其特征在于,包括:
获取针对第一方法标注的注解;
根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
3.根据权利要求2所述的方法,其特征在于,所述根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理包括:
根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
利用所述第一动态代理对象,对所述目标数据进行序列化处理。
4.根据权利要求3所述的方法,其特征在于,在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,所述方法还包括:
利用所述第一动态代理对象,检测所述目标数据的发送速度;
当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
5.一种数据消费方法,其特征在于,包括:
通过消息中间件获取生产数据;
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
对序列化处理的所述目标数据进行反序列化处理;
根据所述第二方法对所述目标数据进行处理。
6.根据权利要求5所述的方法,其特征在于,所述采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
7.根据权利要求5所述的方法,其特征在于,在所述对序列化处理的所述目标数据进行反序列化处理之前,所述方法还包括:
根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述对序列化处理的所述目标数据进行反序列化处理包括:
利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
8.根据权利要求7所述的方法,其特征在于,在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,所述方法还包括:
利用所述第二动态代理对象,检测所述目标数据的接收速度;
当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
9.一种数据处理装置,其特征在于,包括:
注解获取模块,用于数据生产端获取针对第一方法标注的注解;
序列化封装模块,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块,用于将所述生产数据传输至消息中间件;
数据获取模块,用于数据消费端通过所述消息中间件获取所述生产数据;
解析模块,用于采用所述预设协议对所述生产数据进行解析,得到序列化处理的所述目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有所述注解;
反序列化模块,用于对所述目标数据进行反序列化处理;
处理模块,用于根据所述第二方法对所述目标数据进行处理。
10.一种数据生产装置,其特征在于,包括:
注解获取模块,用于获取针对第一方法标注的注解;
序列化模块,用于根据针对所述第一方法标注的注解,对待处理的目标数据进行序列化处理;
封装模块,用于根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据;
传输模块,用于将所述生产数据传输至消息中间件,以使所述生产数据通过所述消息中间件到达数据消费端。
11.根据权利要求10所述的装置,其特征在于,所述序列化模块包括:
对象创建子模块,用于根据针对所述第一方法标注的注解,创建代理所述第一方法的第一动态代理对象;
序列化子模块,用于利用所述第一动态代理对象,对所述目标数据进行序列化处理。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
速度检测模块,用于在所述根据针对所述第一方法标注的注解,采用预设协议对序列化处理的所述目标数据进行封装,形成生产数据之前,利用所述第一动态代理对象,检测所述目标数据的发送速度;
暂停恢复模块,用于当所述发送速度超过设定发送速度时,暂停所述目标数据的发送,在间隔第一设定时长后,恢复所述目标数据的发送。
13.一种数据消费装置,其特征在于,包括:
数据获取模块,用于通过消息中间件获取生产数据;
解析模块,用于采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据,确定所述目标数据由第二方法处理;其中,所述第二方法标注有注解;
反序列化模块,用于对序列化处理的所述目标数据进行反序列化处理;
处理模块,用于根据所述第二方法对所述目标数据进行处理。
14.根据权利要求13所述的装置,其特征在于,所述解析模块包括:
采用预设协议对所述生产数据进行解析,得到序列化处理的目标数据以及所述第一方法的方法签名;
确定所述目标数据由所述方法签名对应的第二方法处理。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括:
对象创建模块,用于在所述对序列化处理的所述目标数据进行反序列化处理之前,根据针对所述第二方法标注的注解,创建代理所述第二方法的第二动态代理对象;
所述反序列化模块,具体用于利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
速度检测模块,用于在所述利用所述第二动态代理对象,对序列化处理的所述目标数据进行反序列化处理之后,利用所述第二动态代理对象,检测所述目标数据的接收速度;
暂停恢复模块,用于当所述接收速度超过设定接收速度时,暂停所述目标数据的接收,在间隔第二设定时长后,恢复所述目标数据的接收。
17.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010625243.XA CN111930531B (zh) | 2020-07-01 | 2020-07-01 | 数据处理、数据生产、数据消费方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010625243.XA CN111930531B (zh) | 2020-07-01 | 2020-07-01 | 数据处理、数据生产、数据消费方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930531A true CN111930531A (zh) | 2020-11-13 |
CN111930531B CN111930531B (zh) | 2023-08-18 |
Family
ID=73317363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010625243.XA Active CN111930531B (zh) | 2020-07-01 | 2020-07-01 | 数据处理、数据生产、数据消费方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930531B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579061A (zh) * | 2020-12-17 | 2021-03-30 | 青岛以萨数据技术有限公司 | 一种安卓组件间数据传递方法、设备、***及存储介质 |
CN113360301A (zh) * | 2021-07-02 | 2021-09-07 | 北京奇艺世纪科技有限公司 | 一种消息传输***及方法 |
CN113365046A (zh) * | 2021-04-30 | 2021-09-07 | 厦门立林科技有限公司 | 高性能音视频数据测试发送方法及其应用和存储介质 |
CN116233247A (zh) * | 2023-04-25 | 2023-06-06 | 合肥智鼎科技服务有限公司 | 一种具备预处理性能的数据传输处理*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040255046A1 (en) * | 2003-06-11 | 2004-12-16 | Microsoft Corporation | Transformation of an asynchronous transactional messaging language into a web services compatible language |
CN103209214A (zh) * | 2013-04-03 | 2013-07-17 | 蓝盾信息安全技术股份有限公司 | 一种基于NoSQL的消息中间件的实现方法 |
US20140245309A1 (en) * | 2013-02-28 | 2014-08-28 | Oracle International Corporation | System and method for transforming a queue from non-blocking to blocking |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN109446225A (zh) * | 2018-09-26 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN109558251A (zh) * | 2017-09-26 | 2019-04-02 | 北京京东尚科信息技术有限公司 | 页面结构信息修改的方法及终端 |
WO2019153735A1 (zh) * | 2018-02-11 | 2019-08-15 | 华为技术有限公司 | 数据处理方法、装置和*** |
US20190303216A1 (en) * | 2018-03-30 | 2019-10-03 | Inflight VR Software GmbH | Method, apparatus, and computer-readable medium for managing notifications delivered to a virtual reality device |
CN110808840A (zh) * | 2019-10-30 | 2020-02-18 | 网易(杭州)网络有限公司 | 业务处理方法及装置、电子设备、存储介质 |
CN111221659A (zh) * | 2018-11-23 | 2020-06-02 | 北京图森智途科技有限公司 | 一种多机器人操作***环境的订阅性能追踪*** |
-
2020
- 2020-07-01 CN CN202010625243.XA patent/CN111930531B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040255046A1 (en) * | 2003-06-11 | 2004-12-16 | Microsoft Corporation | Transformation of an asynchronous transactional messaging language into a web services compatible language |
US20140245309A1 (en) * | 2013-02-28 | 2014-08-28 | Oracle International Corporation | System and method for transforming a queue from non-blocking to blocking |
CN103209214A (zh) * | 2013-04-03 | 2013-07-17 | 蓝盾信息安全技术股份有限公司 | 一种基于NoSQL的消息中间件的实现方法 |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN109558251A (zh) * | 2017-09-26 | 2019-04-02 | 北京京东尚科信息技术有限公司 | 页面结构信息修改的方法及终端 |
WO2019153735A1 (zh) * | 2018-02-11 | 2019-08-15 | 华为技术有限公司 | 数据处理方法、装置和*** |
US20190303216A1 (en) * | 2018-03-30 | 2019-10-03 | Inflight VR Software GmbH | Method, apparatus, and computer-readable medium for managing notifications delivered to a virtual reality device |
CN109446225A (zh) * | 2018-09-26 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN111221659A (zh) * | 2018-11-23 | 2020-06-02 | 北京图森智途科技有限公司 | 一种多机器人操作***环境的订阅性能追踪*** |
CN110808840A (zh) * | 2019-10-30 | 2020-02-18 | 网易(杭州)网络有限公司 | 业务处理方法及装置、电子设备、存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579061A (zh) * | 2020-12-17 | 2021-03-30 | 青岛以萨数据技术有限公司 | 一种安卓组件间数据传递方法、设备、***及存储介质 |
CN113365046A (zh) * | 2021-04-30 | 2021-09-07 | 厦门立林科技有限公司 | 高性能音视频数据测试发送方法及其应用和存储介质 |
CN113365046B (zh) * | 2021-04-30 | 2023-08-01 | 厦门立林科技有限公司 | 高性能音视频数据测试发送方法及其应用和存储介质 |
CN113360301A (zh) * | 2021-07-02 | 2021-09-07 | 北京奇艺世纪科技有限公司 | 一种消息传输***及方法 |
CN113360301B (zh) * | 2021-07-02 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 一种消息传输***及方法 |
CN116233247A (zh) * | 2023-04-25 | 2023-06-06 | 合肥智鼎科技服务有限公司 | 一种具备预处理性能的数据传输处理*** |
Also Published As
Publication number | Publication date |
---|---|
CN111930531B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930531B (zh) | 数据处理、数据生产、数据消费方法、装置、设备及介质 | |
US10528454B1 (en) | Intelligent automation of computer software testing log aggregation, analysis, and error remediation | |
US11226795B2 (en) | Efficient state machines for real-time dataflow programming | |
CN110417766B (zh) | 一种协议解析的方法和装置 | |
CN114490268A (zh) | 全链路监控方法、装置、设备、存储介质和程序产品 | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
CN113360301B (zh) | 一种消息传输***及方法 | |
CN104168250B (zh) | 基于cgi框架的业务流程控制方法及装置 | |
CN110232091B (zh) | 用于同步数据的方法、***和装置 | |
CN104834588B (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
CN108496157B (zh) | 使用扩展接口提供运行时跟踪的***和方法 | |
CN113360377B (zh) | 一种测试方法和装置 | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
CN112860507B (zh) | 分布式链路跟踪***采样率的控制方法和装置 | |
CN112565277B (zh) | 一种数据传输方法、***及电子设备 | |
CN112905197A (zh) | 一种信息处理方法、装置、***、电子设备及存储介质 | |
AU2018390863B2 (en) | Computer system and method for extracting dynamic content from websites | |
CN111857985A (zh) | 浏览器插件的调用方法、装置、存储介质及终端 | |
CN116150513A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113992644A (zh) | 一种基于无服务技术的物联网关***及其数据处理方法 | |
CN113704079B (zh) | 基于Protobuf的接口测试方法和装置 | |
CN113918245A (zh) | 一种数据调用方法、装置、设备及计算机可读存储介质 | |
CN113778647A (zh) | 一种调用请求的处理方法、***及测试设备 | |
CN113064987A (zh) | 数据处理方法、装置、电子设备、介质和程序产品 | |
CN113760693A (zh) | 用于微服务***的本地调试的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |