CN113098969B - 数据分发方法、装置、系统及电子设备 - Google Patents
数据分发方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN113098969B CN113098969B CN202110384980.XA CN202110384980A CN113098969B CN 113098969 B CN113098969 B CN 113098969B CN 202110384980 A CN202110384980 A CN 202110384980A CN 113098969 B CN113098969 B CN 113098969B
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- distribution
- queue
- subscription
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据分发方法、装置、系统及电子设备,其方法由数据分发服务器执行,包括:获取生成端配置的数据类型集合以及订阅端配置的回调地址,获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型,根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列,从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列,从分布队列拉取发布数据,并发布至回调地址。本申请的有益效果在于:多线程并行处理实现了数据异步通信,解耦了生成端与订阅端之间的强关联,使数据通信更加平稳。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种数据分发方法、装置、系统及电子设备。
背景技术
传统的系统架构是单体架构模式,这种架构模式是把应用程序整体打包部署,具体的样式依赖于应用本身采用的编程语言。当应用程序随着时间的推进,加入的服务越来越多,最终会变得巨大,单体架构模式便不再适用。
微服务架构模式,则可以解决单体架构模式带来的系统复杂性。微服务架构模式下,一个服务只对应一个单一的功能,每个服务均可以单独部署运行。在微服务架构模式下,进行分布式部署,将每个服务分散到不同的模块上,可以使应用程序运行在多个服务模块上,每个服务实例都是一个进程,从而提供一种很好的方式来运行应用程序。
但是,随着微服务架构下分布式部署的服务模块持续增加,大量服务模块之间互相通过超文本传输协议(Http)请求通信已经不能支持大数据量。不同服务模块之间没有统一的数据通信管道,各服务模块之间难以进行复杂的数据交换。而且,各服务模块之间的通信没有安全认证,导致各服务模块之间的数据通信存在被拦截的风险,可能导致数据丢失或被篡改。另外,各服务模块的通信节点之间强关联,极易因网络抖动等原因导致数据通信异常。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据分发方法、装置、系统及电子设备。
依据本申请的一方面,提供了一种数据分发方法,由数据分发服务器执行,包括:
获取生成端配置的数据类型集合以及订阅端配置的回调地址;
获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型;
根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列;
从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列;
从分布队列拉取发布数据,并发布至回调地址。
可选的,该方法还包括:
获取生成端的第一节点注册信息;
根据第一节点注册信息,生成生成端账号,并为生成端账号配置第一公钥,以使生成端根据第一公钥对目标数据进行加密;
根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列还包括:
获取目标数据中的第一公钥;
根据第一公钥以及存储于数据分发服务器的第一私钥,确定目标数据是否正确;
若正确,则将目标数据存入工作队列;
若不正确,则舍弃目标数据。
可选的,该方法还包括:
获取订阅端的第二节点注册信息;
根据第二节点注册信息,生成订阅端账号,并为订阅端账号配置第二公钥;
从分布队列拉取发布数据,并发布至回调地址还包括:
根据存储于数据分发服务器的第二私钥,对发布数据进行加密,并将加密后的发布数据发布至回调地址,以使订阅端根据第二公钥和从发布数据中获取的第二私钥对发布数据进行解密。
可选的,获取生成端配置的数据类型集合以及订阅端配置的回调地址包括:
提供前端页面,前端页面包括数据类型集合配置项和回调地址配置项;
响应于对各配置项的配置指令,通过前端页面获取生成端配置的数据类型集合以及订阅端配置的回调地址。
可选的,根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列包括:
根据目标数据类型从生成端获取目标数据,其中,目标数据至少包括身份标识号;
对身份标识号与历史目标数据的身份标识号进行重复判定;
若不重复,则将目标数据存入工作队列;
若重复,则舍弃目标数据。
可选的,从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列包括:
按目标数据存入工作队列的时间顺序从工作队列拉取目标数据;
根据订阅数据类型对目标数据进行过滤和/或分类,得到相应的发布数据;
将目标数据的身份标识号分配至相应的发布数据;
将携带身份标识号的发布数据存入分布队列。
可选的,从分布队列拉取发布数据,并发布至回调地址包括:
按发布数据存入分布队列的时间顺序从分布队列拉取发布数据,并发布至回调地址;
若发布数据发布成功,则生成成功字符,响应于订阅端的确认,记录发布成功的发布数据的身份标识号;
若发布数据发布失败,则根据发布失败的发布数据的身份标识号进行重新发布。
根据本申请的另一方面,提供了一种数据分发装置,应用于数据分发服务器,包括:
获取单元,用于获取生成端配置的数据类型集合以及订阅端配置的回调地址;
目标数据类型确定单元,用于获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型;
工作队列单元,用于从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列;
发布单元,用于从分布队列拉取发布数据,并发布至回调地址。
根据本申请的又一方面,提供了一种数据分发系统,包括:分别通信连接的生成端、订阅端和数据分发服务器;其中,
生成端通过应用程序接口连接至数据分发服务器;
生成端,用于配置数据类型集合,并根据订阅端的订阅请求将对应的目标数据发送至数据分发服务器;
订阅端,用于配置回调地址,将订阅请求发送至数据分发服务器,并接收数据分发服务器发布的发布数据;
数据分发服务器,用于基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求,执行上述任一的数据分发方法。
根据本申请的再一方面,提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行上述任一的数据分发方法。
由上述可知,本发明的技术方案,基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求确定出对应的目标数据类型,根据目标数据类型从生成端获取目标数据存入工作队列,从工作队列拉取目标数据进行处理后得到发布数据存入分布队列,从分布队列拉取发布数据后发布至回调地址。在以数据为中心的发布/订阅模式下,基于数据分发服务器的队列通道,将从生成端获取的目标数据存入工作队列,拉取工作队列的目标数据处理后得到发布数据存入分布队列,拉取分布队列中的发布数据发布至回调地址,多线程并行处理,实现了数据异步通信,解耦了生成端与订阅端之间的强关联,使数据通信更加平稳;数据存入工作队列,进行处理,从分布队列发布的过程由多线程承担,提高了数据分发的效率,缩短了数据分发的时间,减小了数据分发服务器的负担,降低了硬件成本。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式并配合附图详细说明如后。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的数据分发方法的流程图;
图2示出了根据本申请另一个实施例的数据分发方法的流程图;
图3示出了根据本申请一个实施例的数据分发装置的示意图;
图4示出了根据本申请一个实施例的数据分发系统的示意图;
图5示出了根据本申请一个实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
微服务是一种架构设计方式,一个服务只对应一个单一的功能,每个服务均可以单独部署运行。分布式是一种系统部署方式,即将每个服务分散部署在不同的模块上。因此,通过在微服务上构建分布式应用,使应用运行在多个服务模块上,每个服务实例都是一个进程,可以提供一种很好的方式来运行应用程序。
基于微服务架构的分布式部署通常适用于服务规模较大、复杂度高、且需要长期开发和维护的应用程序。通过微服务架构的分布式部署方式,整体应用程序被分解成可独立管理的服务模块,单个服务模块可以更快、更简单的开发和维护、
但是,在基于微服务的分布式环境下,即使进行了分布式部署,服务模块之间的调用都是在应用程序之内,随着服务模块大量增加,服务到服务的通信量是巨大而复杂的,不同服务模块之间没有统一的数据通信管道,各服务模块之间便难以进行大量且复杂的数据交换。各服务模块之间的通信没有安全认证,导致各服务模块之间的数据通信存在被拦截的风险,可能导致数据丢失或被篡改。另外,各服务模块的通信节点之间强关联,极易因网络抖动等原因导致数据通信异常。
本申请的构思在于:基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求确定出对应的目标数据类型,根据目标数据类型从生成端获取目标数据存入工作队列,从工作队列拉取目标数据进行处理后得到发布数据存入分布队列,从分布队列拉取发布数据后发布至回调地址。
针对现有技术中,不同服务模块之间没有统一的数据通信管道,各服务模块之间难以进行大量且复杂的数据交换的技术缺陷,本申请在以数据为中心的发布/订阅模式下,基于数据分发服务器的队列通道,通过上述方法,多线程并行处理实现了数据异步通信,解耦了生成端与订阅端之间的强关联,使数据通信更加平稳。数据存入工作队列,进行处理,从分布队列发布的过程由多线程承担,提高了数据分发的效率,缩短了数据分发的时间,减小了数据分发服务器的负担,降低了硬件成本。
图1示出了根据本申请一个实施例的数据分发方法的流程图,如图1所示,本实施例的数据分发方法,由数据分发服务器执行,至少包括以下步骤S110至步骤S150:
步骤S110,获取生成端配置的数据类型集合以及订阅端配置的回调地址。
生成端作为数据推送方,数据分发服务器获取生成端配置的其能够推送的数据类型集合,数据类型集合中可以包括但不限于消息模式、租户模式、会员模式。
订阅端作为数据消费方,数据分发服务器获取订阅端配置的其用于接收数据的回调地址。
步骤S120,获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型。
获取订阅端的订阅请求,根据订阅请求确定出数据消费方的订阅数据类型,订阅数据类型可以但不限于消息模式、租户模式、会员模式。根据数据消费方的订阅数据类型,从数据推送方配置的能够推送的数据类型集合中确定出与其对应的目标数据类型。
步骤S130,根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列。
根据确定出的目标数据类型,从数据推送方获取目标数据,并将其存入工作队列。
具体的,工作队列可以为一个或多个。
当工作队列为一个时,根据确定出的目标数据类型,从数据推送方获取目标数据。可以但不限于以时间顺序将目标数据存入工作队列,从而保证目标数据的有序性。
当工作队列为多个时,根据确定出的目标数据类型,从数据推送方获取目标数据,可以但不限于根据各目标数据类型将目标数据分类存入多个工作队列,从而隔离不同类型的目标数据。
步骤S140,从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列。
服务器程序利用线程技术响应请求。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动任务。
工作队列里有数据后,线程池的工作线程拉取工作队列中的目标数据,根据订阅数据类型对目标数据进行处理。根据不同的订阅数据类型,对目标数据的处理可以包括但不限于:处理租户订阅模式数据、处理消息订阅模式数据、处理会员业务数据。得到发布数据,并将其存入分布队列。例如,对于处理租户订阅模式数据,数据分发服务器对拉取的目标数据进行租户分类,得到发布数据后存入分布队列;对于处理消息订阅模式数据,数据分发服务器对拉取的目标数据筛选出所有订阅了该类的数据类型,得到发布数据后存入分布队列。
具体的,工作线程可以为一个或多个。
当工作线程为一个时,可以但不限于以时间顺序从一个或多个工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,从而保证对目标数据处理的有序性。
当工作线程为多个时,可以但不限于使每个工作线程处理一类订阅数据类型的目标数据。以时间顺序从一个工作队列拉取目标数据,根据订阅数据类型将目标数据分配给相应的工作线程处理;或者每个工作线程分别从每个工作队列以时间顺序拉取目标数据进行处理,从而隔离处理不同类型的目标数据。
具体的,分布队列可以为一个或多个。
当分布队列为一个时,可以但不限于以时间顺序将一个或多个工作线程处理生成的发布数据存入分布队列,从而保证发布数据的有序性。
当分布队列为多个时,可以但不限于以时间顺序将一个工作线程处理得到的发布数据根据各订阅数据类型分别存入多个分布队列;或者每个分布队列分别存入每个工作线程处理得到的发布数据,从而隔离不同类型的发布数据。
步骤S150,从分布队列拉取发布数据,并发布至回调地址。
分布队列里有数据后,线性池的分发线程拉取分布队列中的发布数据,根据订阅端配置的回调地址将发布数据发布至订阅端。
具体的,分发线程可以为一个或多个。
当分发线程为一个时,可以但不限于以时间顺序从一个或多个分布队列拉取发布数据,根据回调地址进行发布,从而保证对发布数据分发的有序性。
当分发线程为多个时,可以但不限于使每个分发线程处理一类订阅数据类型的发布数据。以时间顺序从一个分布队列拉取发布数据,根据订阅数据类型将发布数据分配给相应的分发线程发布;或者,每个分发线程分别从每个分布队列以时间顺序拉取发布数据进行发布,从而隔离分发不同类型的发布数据。
从以上的描述中,可以看出,本发明实现了如下效果:
在本申请实施例中,基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求确定出对应的目标数据类型,根据目标数据类型从生成端获取目标数据存入工作队列,从工作队列拉取目标数据进行处理后得到发布数据存入分布队列,从分布队列拉取发布数据后发布至回调地址。在以数据为中心的发布/订阅模式下,基于数据分发服务器的队列通道,将从生成端获取的目标数据存入工作队列,拉取工作队列的目标数据处理后得到发布数据存入分布队列,拉取分布队列中的发布数据发布至回调地址,多线程并行处理,实现了数据异步通信,解耦了生成端与订阅端之间的强关联,使数据通信更加平稳。数据存入工作队列,进行处理,从分布队列发布的过程由多线程承担,提高了数据分发的效率,缩短了数据分发的时间,减小了数据分发服务器的负担,降低了硬件成本。
在本申请的一些实施例中,该方法还包括步骤S160:
步骤S160,获取生成端的第一节点注册信息,根据第一节点注册信息,生成生成端账号,并为生成端账号配置第一公钥,以使生成端根据第一公钥对目标数据进行加密。
步骤S130还包括步骤S161:
步骤S161,获取目标数据中的第一公钥,根据第一公钥以及存储于数据分发服务器的第一私钥,确定目标数据是否正确,若正确,则将目标数据存入工作队列,若不正确,则舍弃目标数据。
数据分发服务器获取数据推送方的第一节点注册信息,根据第一节点注册信息生成生成端账号。为了使生成端与数据分发服务器的数据通信更加安全,基于RSA加密模式对目标数据进行加密解密。
RSA加密模式是一种非对称加密,可以在不直接传递密钥的情况下,完成加密、解密,能够确保信息的安全性,避免直接传递密钥造成的信息被破解的风险。RSA加密模式由一对密钥来进行加密、解密过程,一对密钥分别称为公钥和私钥,两者之间有数学相关,通常公钥是公开的,私钥是非公开的。
加密解密过程为:数据分发服务器生成一对第一密钥,包括第一公钥和第一私钥,将第一公钥配置给生成端账号,将第一私钥存储。生成端获取第一公钥后对目标数据进行加密,并将加密的目标数据发送给数据分发服务器。数据分发服务器接收加密后的目标数据,利用其存储的第一私钥对目标数据进行解密,以确定目标数据是否正确。
在这一加密解密过程中,只有两次传递过程,第一次是数据分发服务器传递第一公钥给生成端账号,第二次是生成端传递加密后的目标数据给数据分发服务器。由于只有数据分发服务器的第一私钥才能对加密后的目标数据进行解密,即使两次传递均被拦截,加密后的目标数据也不存在泄露危险。
若目标数据正确,则将其存入工作队列,若目标数据不正确,则舍弃目标数据。
在本申请的一些实施例中,该方法还包括步骤S170:
步骤S170,获取订阅端的第二节点注册信息,根据第二节点注册信息,生成订阅端账号,并为订阅端账号配置第二公钥。
步骤S150还包括步骤S171:
步骤S171,根据存储于数据分发服务器的第二私钥,对发布数据进行加密,并将加密后的发布数据发布至回调地址,以使订阅端根据第二公钥和从发布数据中获取的第二私钥对发布数据进行解密。
数据分发服务器获取数据消费方的第二节点注册信息,根据第二节点注册信息生成订阅端账号。为了使数据分发服务器与订阅端的数据通信更加安全,基于RSA加密模式对发布数据进行加密解密。
加密解密过程为:数据分发服务器生成一对第二密钥,包括第二公钥和第二私钥,将第二公钥配置给订阅端账号,将第二私钥存储。数据分发服务器利用第二私钥对发布数据进行加密,并将加密的发布数据发布至订阅端账号。订阅端接收加密后的发布数据,利用其从数据分发服务器获取的第二公钥对加密后的发布数据进行解密。
在这一加密解密过程中,只有两次传递过程,第一次是数据分发服务器传递第二公钥给订阅端,第二次是数据分发服务器传递加密后的发布数据给订阅端账号。由于数据分发服务器的第二私钥对发布数据加密,即使发布数据被拦截,加密后的发布数据也无法被篡改。
在本申请的一些实施例中,步骤S110获取生成端配置的数据类型集合以及订阅端配置的回调地址包括以下步骤S111至步骤S112:
步骤S111,提供前端页面,前端页面包括数据类型集合配置项和回调地址配置项。
数据分发服务器提供前端页面,前端页面包括数据类型集合配置项和回调地址配置项。生成端在前端页面操作数据类型集合配置指令,订阅端在前端页面操作回调地址配置指令,以使数据分发服务器获取数据类型集合以及回调地址。
具体的,数据类型集合配置项可以为需要生成端通过前端页面进行输入,或者生成端根据前端页面预选框给出的选项进行选择。例如,生成端通过前端页面在数据类型集合配置项输入数据类型集合;或者生成端根据前端页面预选框给出的选项选择数据类型集合,数据类型集合可以包括但不限于消息模式、租户模式、会员模式。
具体的,回调地址配置项可以为需要订阅端通过前端页面进行输入,或者订阅端根据前端页面预选框给出的选项进行选择。例如,订阅端通过前端页面在回调地址配置项输入回调地址;或者基于订阅端与数据分发服务器的通信连接,将订阅端的回调地址通过前端页面预选框给出选项,订阅端通过选择选项配置回调地址。
步骤S112,响应于对各配置项的配置指令,通过前端页面获取生成端配置的数据类型集合以及订阅端配置的回调地址。
生成端通过前端页面配置数据类型集合,订阅端通过前端页面配置回调地址后,数据分发服务器通过前端页面获取数据类型集合以及回调地址。
在本申请的一些实施例中,步骤S130根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列包括以下步骤S131至步骤S132:
步骤S131,根据目标数据类型从生成端获取目标数据,其中,目标数据至少包括身份标识号。
数据分发服务器根据目标数据类型从生成端获取目标数据,生成端的目标数据携带有唯一身份标识号。
步骤S132,对身份标识号与历史目标数据的身份标识号进行重复判定,若不重复,则将目标数据存入工作队列,若重复,则舍弃目标数据。
数据分发服务器将最新获取的目标数据的身份标识号与历史目标数据的身份标识号进行重复判定,只有没有重复消费的目标数据才能被存入工作队列。
在本申请的一些实施例中,步骤S140从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列包括以下步骤S141至步骤S144:
步骤S141,按目标数据存入工作队列的时间顺序从工作队列拉取目标数据。
工作队列里有数据后,线性池的工作线程按照目标数据存入工作队列的时间顺序拉取工作队列中的目标数据。
步骤S142,根据订阅数据类型对目标数据进行过滤和/或分类,得到相应的发布数据。
根据不同的订阅数据类型,对目标数据进行过滤和/或分类,可以包括但不限于处理租户订阅模式数据、处理消息订阅模式数据、处理会员业务数据。例如,对于处理租户订阅模式数据,数据分发服务器对拉取的目标数据进行租户分类,得到发布数据后存入分布队列;对于处理消息订阅模式数据,数据分发服务器对拉取的目标数据筛选出所有订阅了该类的数据类型,得到发布数据后存入分布队列。
步骤S143,将目标数据的身份标识号分配至相应的发布数据。
将目标数据携带的唯一身份标识号分配至经过处理得到的相应的发布数据,以使发布数据携带唯一身份标识号。
步骤S144,将携带身份标识号的发布数据存入分布队列。
将携带有唯一身份标识号的发布数据存入分布队列。
在本申请的一些实施例中,步骤S150从分布队列拉取发布数据,并发布至回调地址包括以下步骤S151至步骤S153:
步骤S151,按发布数据存入分布队列的时间顺序从分布队列拉取发布数据,并发布至回调地址。
分布队列里有数据后,线性池的分发线程按照发布数据存入分布队列的时间顺序拉取分布队列中的发布数据,并根据订阅端配置的回调地址将发布数据发布至订阅端。
步骤S152,若发布数据发布成功,则生成成功字符,响应于订阅端的确认,记录发布成功的发布数据的身份标识号。
发布数据发布成功,数据分发服务器生成成功字符供订阅端进行确认。订阅端手动确认后,数据分发服务器将发布成功的发布数据的身份标识号进行记录。这一过程避免了数据分发服务器与订阅端之间因网络抖动等原因导致的成功字符无法确认返回。
基于目标数据携带身份标识号,这一身份标识号分配给经过处理得到的相应的发布数据,因此每条数据从进入数据分发服务器到发布至回调地址的整个流转过程均被追踪记录,形成日志,通过日志能够查看数据分发服务器发布的数据记录。
步骤S153,若发布数据发布失败,则根据发布失败的发布数据的身份标识号进行重新发布。
基于发布数据携带了唯一身份标识号,若发布数据发布失败,则根据身份标识号进行重新发布。这一过程避免了发布数据发布失败后,需要从生成端重新获取目标数据进行处理,提高了数据处理效率。
图2示出了本申请的另一个实施例的数据分发方法的流程图,如图2所示,本实施例的数据分发方法至少包括以下步骤S210至步骤S250:
步骤S210,获取生成端配置的数据类型集合以及订阅端配置的回调地址,具体包括:步骤S211至步骤S214。
步骤S211,提供前端页面,前端页面包括数据类型集合配置项和回调地址配置项。
步骤S212,响应于对各配置项的配置指令,通过前端页面获取生成端配置的数据类型集合以及订阅端配置的回调地址。
步骤S213,获取生成端的第一节点注册信息,根据第一节点注册信息,生成生成端账号,并为生成端账号配置第一公钥,以使生成端根据第一公钥对目标数据进行加密。
步骤S214,获取订阅端的第二节点注册信息,根据第二节点注册信息,生成订阅端账号,并为订阅端账号配置第二公钥。
例如,通过前端页面获取生成端配置的数据类型集合为[消息模式、租户模式、会员模式],通过前端页面获取订阅端配置的回调地址为[地址1]。通过获取的生成端的第一节点注册信息生成生成端账号,并为其配置第一公钥,并存储第一私钥。通过获取的订阅端的第二节点注册信息生成订阅端账号,并为其配置第二公钥,并存储第二私钥。
步骤S220,获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型。
例如,根据订阅端的订阅请求确定出订阅数据类型为[消息模式],则确定出目标数据类型为[消息模式]。
步骤S230,根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列,具体包括:步骤S231至步骤S232。
步骤S231,根据目标数据类型从生成端获取目标数据,其中,目标数据至少包括身份标识号,对身份标识号与历史目标数据的身份标识号进行重复判定,若不重复,则将目标数据存入工作队列,若重复,则舍弃目标数据。
步骤S232,获取目标数据中的第一公钥,根据第一公钥以及存储于数据分发服务器的第一私钥,确定目标数据是否正确,若正确,则将目标数据存入工作队列,若不正确,则舍弃目标数据。
例如,根据目标数据类型[消息模式]从生成端获取目标数据,目标数据包括身份标识号ID001,ID001与历史目标数据的身份标识号不重复,获取ID001目标数据的第一公钥,根据第一公钥和第一私钥确定ID001目标数据正确,则将ID001目标数据存入工作队列
步骤S240,从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列,具体包括:步骤S241至步骤S244。
步骤S241,按目标数据存入工作队列的时间顺序从工作队列拉取目标数据。
步骤S242,根据订阅数据类型对目标数据进行过滤和/或分类,得到相应的发布数据。
步骤S243,将目标数据的身份标识号分配至相应的发布数据。
步骤S244,将携带身份标识号的发布数据存入分布队列。
例如,按目标数据存入工作队列的时间顺序从工作队列拉取ID001目标数据。根据订阅数据类型[消息模式]对目标数据进行过滤,根据处理消息订阅模式数据,对ID001目标数据筛选出发布数据。将ID001分配至发布数据,并将ID001发布数据存入分布队列。
步骤S250,从分布队列拉取发布数据,并发布至回调地址,具体包括:步骤S251至步骤S254:
步骤S251,按发布数据存入分布队列的时间顺序从分布队列拉取发布数据。
步骤S252,根据存储于数据分发服务器的第二私钥,对发布数据进行加密,并将加密后的发布数据发布至回调地址,以使订阅端根据第二公钥和从发布数据中获取的第二私钥对发布数据进行解密。
步骤S253,若发布数据发布成功,则生成成功字符,响应于订阅端的确认,记录发布成功的发布数据的身份标识号。
步骤S254,若发布数据发布失败,则根据发布失败的发布数据的身份标识号进行重新发布。
例如,按发布数据存入分布队列的时间顺序从分布队列拉取ID001发布数据。根据第二私钥对ID001发布数据进行加密,并将加密后的发布数据发布至回调地址。若ID001发布数据发布成功,则生成成功字符(Ack),响应于订阅端的确认,记录ID001。若ID001发布失败,则根据ID001进行重发。
图3示出了根据本申请一个实施例的数据分发装置的示意图,如图3所示,本实施例的数据分发装置300,应用于数据分发服务器,至少包括:
获取单元310,用于获取生成端配置的数据类型集合以及订阅端配置的回调地址。
生成端作为数据推送方,数据分发服务器获取生成端配置的其能够推送的数据类型集合,数据类型集合中可以包括但不限于消息模式、租户模式、会员模式。
订阅端作为数据消费方,数据分发服务器获取订阅端配置的其用于接收数据的回调地址。
目标数据类型确定单元320,用于获取订阅端的订阅请求,根据订阅请求确定出数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型。
获取订阅端的订阅请求,根据订阅请求确定出数据消费方的订阅数据类型,订阅数据类型可以但不限于消息模式、租户模式、会员模式。根据数据消费方的订阅数据类型,从数据推送方配置的能够推送的数据类型集合中确定出与其对应的目标数据类型。
工作队列单元330,用于根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列。
根据确定出的目标数据类型,从数据推送方获取目标数据,并将其存入工作队列。
具体的,工作队列可以为一个或多个。
当工作队列为一个时,根据确定出的目标数据类型,从数据推送方获取目标数据。可以但不限于以时间顺序将目标数据存入工作队列,从而保证目标数据的有序性。
当工作队列为多个时,根据确定出的目标数据类型,从数据推送方获取目标数据,可以但不限于根据各目标数据类型将目标数据分类存入多个工作队列,从而隔离不同类型的目标数据。
分布队列单元340,用于从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列。
服务器程序利用线程技术响应请求。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动任务。
工作队列里有数据后,线程池的工作线程拉取工作队列中的目标数据,根据订阅数据类型对目标数据进行处理。根据不同的订阅数据类型,对目标数据的处理可以包括但不限于:处理租户订阅模式数据、处理消息订阅模式数据、处理会员业务数据。得到发布数据,并将其存入分布队列。
具体的,工作线程可以为一个或多个。
当工作线程为一个时,可以但不限于以时间顺序从一个或多个工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,从而保证对目标数据处理的有序性。
当工作线程为多个时,可以但不限于使每个工作线程处理一类订阅数据类型的目标数据。以时间顺序从一个工作队列拉取目标数据,根据订阅数据类型将目标数据分配给相应的工作线程处理;或者每个工作线程分别从每个工作队列以时间顺序拉取目标数据进行处理,从而隔离处理不同类型的目标数据。
具体的,分布队列可以为一个或多个。
当分布队列为一个时,可以但不限于以时间顺序将一个或多个工作线程处理生成的发布数据存入分布队列,从而保证发布数据的有序性。
当分布队列为多个时,可以但不限于以时间顺序将一个工作线程处理得到的发布数据根据各订阅数据类型分别存入多个分布队列;或者每个分布队列分别存入每个工作线程处理得到的发布数据,从而隔离不同类型的发布数据。
发布单元350,用于从分布队列拉取发布数据,并发布至回调地址。
分布队列里有数据后,线性池的分发线程拉取分布队列中的发布数据,根据订阅端配置的回调地址将发布数据发布至订阅端。
具体的,分发线程可以为一个或多个。
当分发线程为一个时,可以但不限于以时间顺序从一个或多个分布队列拉取发布数据,根据回调地址进行发布,从而保证对发布数据分发的有序性。
当分发线程为多个时,可以但不限于使每个分发线程处理一类订阅数据类型的发布数据。以时间顺序从一个分布队列拉取发布数据,根据订阅数据类型将发布数据分配给相应的分发线程发布;或者,每个分发线程分别从每个分布队列以时间顺序拉取发布数据进行发布,从而隔离分发不同类型的发布数据。
在本申请的一些实施例中,数据分发装置300还包括:
第一节点注册单元360,用于获取生成端的第一节点注册信息,根据第一节点注册信息,生成生成端账号,并为生成端账号配置第一公钥,以使生成端根据第一公钥对目标数据进行加密。
工作队列单元330,还用于获取目标数据中的第一公钥,根据第一公钥以及存储于数据分发服务器的第一私钥,确定目标数据是否正确,若正确,则将目标数据存入工作队列,若不正确,则舍弃目标数据。
在本申请的一些实施例中,数据分发装置300还包括:
第二节点注册单元370,用于获取订阅端的第二节点注册信息,根据第二节点注册信息,生成订阅端账号,并为订阅端账号配置第二公钥。
发布单元350,还用于根据存储于数据分发服务器的第二私钥,对发布数据进行加密,并将加密后的发布数据发布至回调地址,以使订阅端根据第二公钥和从发布数据中获取的第二私钥对发布数据进行解密。
在本申请的一些实施例中,在上述的装置中,获取单元310,用于提供前端页面,前端页面包括数据类型集合配置项和回调地址配置项,响应于对各配置项的配置指令,通过前端页面获取生成端配置的数据类型集合以及订阅端配置的回调地址。
在本申请的一些实施例中,在上述的装置中,工作队列单元330,用于根据目标数据类型从生成端获取目标数据,其中,目标数据至少包括身份标识号,对身份标识号与历史目标数据的身份标识号进行重复判定,若不重复,则将目标数据存入工作队列,若重复,则舍弃目标数据。
在本申请的一些实施例中,在上述的装置中,分布队列单元340,用于按目标数据存入工作队列的时间顺序从工作队列拉取目标数据,根据订阅数据类型对目标数据进行过滤和/或分类,得到相应的发布数据,将目标数据的身份标识号分配至相应的发布数据,将携带身份标识号的发布数据存入分布队列。
在本申请的一些实施例中,在上述的装置中,发布单元350,用于按发布数据存入分布队列的时间顺序从分布队列拉取发布数据,并发布至回调地址,若发布数据发布成功,则生成成功字符,响应于订阅端的确认,记录发布成功的发布数据的身份标识号,若发布数据发布失败,则根据发布失败的发布数据的身份标识号进行重新发布。
能够理解,上述数据分发装置,能够实现前述实施例中提供的数据分发方法的各个步骤,关于数据分发方法的相关阐释均适用于数据分发装置,此处不再赘述。
图4示出了根据本申请一个实施例的数据分发系统的示意图,如图4所示,本实施例的数据分发系统400至少包括:
分别通信连接的生成端410、订阅端420和数据分发服务器430。
生成端410通过应用程序接口连接至数据分发服务器430。
生成端410,用于配置数据类型集合,并根据订阅端的订阅请求将对应的目标数据发送至数据分发服务器。
订阅端420,用于配置回调地址,将订阅请求发送至数据分发服务器,并接收数据分发服务器发布的发布数据。
数据分发服务器430,用于基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求,执行数据分发方法。
数据分发服务器使用高吞吐量的分布式发布/订阅消息系统(Kafka)、基于分布式文件存储的数据库(Mongo)、远程字典服务(Redis)、关系型数据库管理系统(Mysql)组件搭建数据分发框架。
需要说明的是,该系统中数据分发服务器的具体实施方式可参照前述对应方法实施例的具体实施方式,本实施例在此不再赘述。
图5示出了本申请一个实施例的电子设备的结构示意图,如图5所示,在硬件层面,该电子设备500包括处理器510,可选地还包括内部总线520、网络接口530、存储器540。其中,存储器540可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据分发装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取生成端配置的数据类型集合以及订阅端配置的回调地址;
获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型;
根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列;
从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列;
从分布队列拉取发布数据,并发布至回调地址。
上述如本申请图3所述实施例揭示的数据分发装置执行的方法可以应用于处理器510中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图3中数据分发装置执行的方法,并实现数据分发装置在图3所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例中数据分发装置执行的方法,并具体用于执行:
获取生成端配置的数据类型集合以及订阅端配置的回调地址;
获取订阅端的订阅请求,根据订阅请求确定出订阅数据类型,从数据类型集合中确定出与订阅数据类型对应的目标数据类型;
根据目标数据类型从生成端获取目标数据,并将目标数据存入工作队列;
从工作队列拉取目标数据,根据订阅数据类型对目标数据进行处理,得到发布数据,并将发布数据存入分布队列;
从分布队列拉取发布数据,并发布至回调地址。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据分发方法,由数据分发服务器执行,其特征在于,包括:
获取生成端配置的数据类型集合以及订阅端配置的回调地址;
获取订阅端的订阅请求,根据所述订阅请求确定出订阅数据类型,从所述数据类型集合中确定出与所述订阅数据类型对应的目标数据类型;
根据所述目标数据类型从所述生成端获取目标数据,并将所述目标数据存入至少一个工作队列;
通过至少一个工作线程从所述至少一个工作队列拉取所述目标数据,根据所述订阅数据类型对所述目标数据进行处理,得到发布数据,并将所述发布数据存入至少一个分布队列;
通过至少一个分发线程从所述至少一个分布队列拉取所述发布数据,并发布至所述回调地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取生成端的第一节点注册信息;
根据所述第一节点注册信息,生成生成端账号,并为所述生成端账号配置第一公钥,以使所述生成端根据第一公钥对所述目标数据进行加密;
所述根据目标数据类型从所述生成端获取目标数据,并将所述目标数据存入工作队列还包括:
获取所述目标数据中的第一公钥;
根据所述第一公钥以及存储于所述数据分发服务器的第一私钥,确定所述目标数据是否正确;
若正确,则将所述目标数据存入工作队列;
若不正确,则舍弃所述目标数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取订阅端的第二节点注册信息;
根据所述第二节点注册信息,生成订阅端账号,并为所述订阅端账号配置第二公钥;
所述从所述分布队列拉取所述发布数据,并发布至所述回调地址还包括:
根据存储于所述数据分发服务器的第二私钥,对所述发布数据进行加密,并将加密后的发布数据发布至所述回调地址,以使所述订阅端根据第二公钥和从所述发布数据中获取的第二私钥对所述发布数据进行解密。
4.根据权利要求1所述的方法,其特征在于,所述获取生成端配置的数据类型集合以及订阅端配置的回调地址包括:
提供前端页面,所述前端页面包括数据类型集合配置项和回调地址配置项;
响应于对各配置项的配置指令,通过所述前端页面获取生成端配置的数据类型集合以及订阅端配置的回调地址。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据类型从所述生成端获取目标数据,并将所述目标数据存入工作队列包括:
根据所述目标数据类型从所述生成端获取目标数据,其中,所述目标数据至少包括身份标识号;
对所述身份标识号与历史目标数据的身份标识号进行重复判定;
若不重复,则将所述目标数据存入工作队列;
若重复,则舍弃所述目标数据。
6.根据权利要求5所述的方法,其特征在于,所述从所述工作队列拉取所述目标数据,根据所述订阅数据类型对所述目标数据进行处理,得到发布数据,并将所述发布数据存入分布队列包括:
按所述目标数据存入所述工作队列的时间顺序从所述工作队列拉取所述目标数据;
根据所述订阅数据类型对所述目标数据进行过滤和/或分类,得到相应的发布数据;
将所述目标数据的身份标识号分配至相应的发布数据;
将携带身份标识号的所述发布数据存入分布队列。
7.根据权利要求6所述的方法,其特征在于,所述从所述分布队列拉取所述发布数据,并发布至所述回调地址包括:
按所述发布数据存入分布队列的时间顺序从所述分布队列拉取所述发布数据,并发布至所述回调地址;
若所述发布数据发布成功,则生成成功字符,响应于所述订阅端的确认,记录发布成功的所述发布数据的身份标识号;
若所述发布数据发布失败,则根据发布失败的所述发布数据的身份标识号进行重新发布。
8.一种数据分发装置,应用于数据分发服务器,其特征在于,包括:
获取单元,用于获取生成端配置的数据类型集合以及订阅端配置的回调地址;
目标数据类型确定单元,用于获取订阅端的订阅请求,根据所述订阅请求确定出订阅数据类型,从所述数据类型集合中确定出与所述订阅数据类型对应的目标数据类型;
工作队列单元,用于根据所述目标数据类型从所述生成端获取目标数据,并将所述目标数据存入至少一个工作队列;
分布队列单元,用于通过至少一个工作线程从所述至少一个工作队列拉取所述目标数据,根据所述订阅数据类型对所述目标数据进行处理,得到发布数据,并将所述发布数据存入至少一个分布队列;
发布单元,用于通过至少一个分发线程从所述至少一个分布队列拉取所述发布数据,并发布至所述回调地址。
9.一种数据分发系统,其特征在于,包括:分别通信连接的生成端、订阅端和数据分发服务器;其中,
所述生成端通过应用程序接口连接至所述数据分发服务器;
所述生成端,用于配置数据类型集合,并根据所述订阅端的订阅请求将对应的目标数据发送至所述数据分发服务器;
所述订阅端,用于配置回调地址,将订阅请求发送至所述数据分发服务器,并接收所述数据分发服务器发布的发布数据;
所述数据分发服务器,用于基于生成端配置的数据类型集合以及订阅端配置的回调地址,根据订阅端的订阅请求,执行权利要求1-7任一项所述的数据分发方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1-7任一项所述的数据分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384980.XA CN113098969B (zh) | 2021-04-09 | 2021-04-09 | 数据分发方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384980.XA CN113098969B (zh) | 2021-04-09 | 2021-04-09 | 数据分发方法、装置、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098969A CN113098969A (zh) | 2021-07-09 |
CN113098969B true CN113098969B (zh) | 2022-12-20 |
Family
ID=76676016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110384980.XA Active CN113098969B (zh) | 2021-04-09 | 2021-04-09 | 数据分发方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113098969B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609384B (zh) * | 2021-07-16 | 2024-05-10 | 广州云从凯风科技有限公司 | 数据订阅方法、设备及计算机存储介质 |
CN113641762A (zh) * | 2021-08-20 | 2021-11-12 | 深圳市四格互联信息技术有限公司 | 信息推送方法、装置、系统和计算机可读存续装置 |
CN115665238B (zh) * | 2022-09-21 | 2023-09-08 | 深圳市米糠云科技有限公司 | 一种呼叫中心数据发布订阅处理的方法及系统 |
CN115629890A (zh) * | 2022-10-27 | 2023-01-20 | 圣名科技(广州)有限责任公司 | 传感器数据采集方法及装置、电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158816A (zh) * | 2014-08-25 | 2014-11-19 | 中国科学院声学研究所 | 认证方法、装置和服务器 |
CN104954469A (zh) * | 2015-06-19 | 2015-09-30 | 长沙廖氏软件科技有限公司 | 一种异构系统信息交换方法 |
CN106230896A (zh) * | 2016-07-18 | 2016-12-14 | 深圳国泰安教育技术股份有限公司 | 一种消息推送方法、装置及系统 |
CN107708112A (zh) * | 2017-11-02 | 2018-02-16 | 重庆邮电大学 | 一种适用于mqtt‑sn协议的加密方法 |
CN109587178A (zh) * | 2019-01-23 | 2019-04-05 | 四川虹美智能科技有限公司 | 一种基于mqtt的智能家电加密控制系统和方法 |
CN110769018A (zh) * | 2018-07-27 | 2020-02-07 | 北京国双科技有限公司 | 一种消息推送方法及装置 |
CN112055061A (zh) * | 2020-08-21 | 2020-12-08 | 烽火通信科技股份有限公司 | 分布式消息处理方法和设备 |
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
CN112527523A (zh) * | 2020-12-11 | 2021-03-19 | 深圳晶泰科技有限公司 | 面向高性能计算多云的分布式消息传递方法及系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7634583B2 (en) * | 2003-12-18 | 2009-12-15 | Microsoft Corporation | Systems and methods that utilize persisted push/pull state to provide reliable message publishing |
CN104408132B (zh) * | 2014-11-28 | 2018-03-02 | 北京京东尚科信息技术有限公司 | 数据推送方法和系统 |
US10491698B2 (en) * | 2016-12-08 | 2019-11-26 | International Business Machines Corporation | Dynamic distribution of persistent data |
CN107819855B (zh) * | 2017-11-14 | 2020-07-28 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN108173902A (zh) * | 2017-11-29 | 2018-06-15 | 清华大学 | 数据传输、发布及订阅方法和装置 |
CN110278231A (zh) * | 2018-03-16 | 2019-09-24 | 中移(苏州)软件技术有限公司 | 一种数据订阅分发方法及系统 |
CN109358960A (zh) * | 2018-11-01 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种任务分发方法、系统、设备及计算机可读存储介质 |
CN109992433B (zh) * | 2019-04-11 | 2021-06-29 | 苏州浪潮智能科技有限公司 | 一种分布式tgt通信优化方法、装置、设备及存储介质 |
CN112579515B (zh) * | 2019-09-27 | 2023-03-24 | Oppo广东移动通信有限公司 | 线程消息处理方法及相关产品 |
CN111597019A (zh) * | 2020-04-22 | 2020-08-28 | 深圳中兴网信科技有限公司 | 调用请求处理方法、装置、终端和计算机可读存储介质 |
CN112329001B (zh) * | 2020-10-10 | 2023-04-18 | 重庆易宠科技有限公司 | 一种内外网之间的数据分发方法、系统、终端及介质 |
CN112380227B (zh) * | 2020-11-12 | 2024-05-07 | 平安科技(深圳)有限公司 | 基于消息队列的数据同步方法、装置、设备及存储介质 |
CN112463144B (zh) * | 2020-12-02 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 分布式存储的命令行服务方法、系统、终端及存储介质 |
-
2021
- 2021-04-09 CN CN202110384980.XA patent/CN113098969B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158816A (zh) * | 2014-08-25 | 2014-11-19 | 中国科学院声学研究所 | 认证方法、装置和服务器 |
CN104954469A (zh) * | 2015-06-19 | 2015-09-30 | 长沙廖氏软件科技有限公司 | 一种异构系统信息交换方法 |
CN106230896A (zh) * | 2016-07-18 | 2016-12-14 | 深圳国泰安教育技术股份有限公司 | 一种消息推送方法、装置及系统 |
CN107708112A (zh) * | 2017-11-02 | 2018-02-16 | 重庆邮电大学 | 一种适用于mqtt‑sn协议的加密方法 |
CN110769018A (zh) * | 2018-07-27 | 2020-02-07 | 北京国双科技有限公司 | 一种消息推送方法及装置 |
CN109587178A (zh) * | 2019-01-23 | 2019-04-05 | 四川虹美智能科技有限公司 | 一种基于mqtt的智能家电加密控制系统和方法 |
CN112055061A (zh) * | 2020-08-21 | 2020-12-08 | 烽火通信科技股份有限公司 | 分布式消息处理方法和设备 |
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
CN112527523A (zh) * | 2020-12-11 | 2021-03-19 | 深圳晶泰科技有限公司 | 面向高性能计算多云的分布式消息传递方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于NDN的高效发布/订阅系统设计与实现;谢英英等;《重庆邮电大学学报(自然科学版)》;20180215(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113098969A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113098969B (zh) | 数据分发方法、装置、系统及电子设备 | |
CN110032880B (zh) | 基于区块链的录屏取证方法、系统和电子设备 | |
CN113766035B (zh) | 一种业务受理及共识的方法及装置 | |
JP2020511881A (ja) | コンセンサス検証のための方法および機器 | |
US10776107B2 (en) | Microservice-based data processing apparatus, method, and program | |
US20200213331A1 (en) | Data service system | |
US9684689B2 (en) | Distributed parallel processing system having jobs processed by nodes based on authentication using unique identification of data | |
US11449488B2 (en) | System and method for processing logs | |
US11082219B2 (en) | Detection and protection of data in API calls | |
US20200233792A1 (en) | Scalable enterprise platform for automated functional and integration regression testing | |
CN112883011A (zh) | 实时数据处理方法和装置 | |
CN112734361A (zh) | 一种分布式协同办公数据处理方法及系统 | |
CN115082185A (zh) | 渠道快速接入贷款业务系统的方法、装置、设备及介质 | |
CN111985921A (zh) | 基于区块链离线支付的验证处理方法及数字金融服务平台 | |
CN114638005A (zh) | 基于区块链的数据处理方法、装置及系统、存储介质 | |
CN113687958A (zh) | 数据处理方法、系统、计算机设备和存储介质 | |
CN113505260A (zh) | 人脸识别方法、装置、计算机可读介质及电子设备 | |
CN112291321A (zh) | 业务处理方法、装置及系统 | |
CN115242872B (zh) | 数据处理方法、装置、计算机设备及可读存储介质 | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN111522580A (zh) | 代码分支的建立方法、装置和计算机设备 | |
CN116647567A (zh) | 隐私保护集合求交方法和装置 | |
US10346626B1 (en) | Versioned access controls | |
CN112866296B (zh) | 应用线上验证方法、装置、设备及存储介质 | |
CN114896635A (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 |