CN112019597B - 分布式数据接收系统及数据接收方法 - Google Patents
分布式数据接收系统及数据接收方法 Download PDFInfo
- Publication number
- CN112019597B CN112019597B CN202010732485.9A CN202010732485A CN112019597B CN 112019597 B CN112019597 B CN 112019597B CN 202010732485 A CN202010732485 A CN 202010732485A CN 112019597 B CN112019597 B CN 112019597B
- Authority
- CN
- China
- Prior art keywords
- data
- interface
- server
- receiving
- client
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据接收系统及数据接收方法,其中系统包括:数据传送接口和至少一个接收端,接收端包括反向代理服务器、接口服务器和数据库服务器,反向代理服务器多个接口服务器连接,接口服务器与数据库服务器之间设置有消息队列集群;数据传输接口用于向反向代理服务器发送客户端数据;反向代理服务器被配置为代理至少一个接口服务器,用于按照预设规则将接收的客户端数据分发给多个接口服务器,以及将接口服务器返回的数据转发给客户端;接口服务器用于验证客户端数据,并将验证通过的客户端数据加入消息队列集群;数据库服务器用于存储或处理消息队列集群中的客户端数据。实现减轻接收端数据接收的压力,提高数据接收效率。
Description
技术领域
本发明涉及数据传输技术领域,更具体地,涉及一种分布式数据接收系统及数据接收方法。
背景技术
目前,数据接收程序一般采用HTTP方式收发数据,当数据量规模比较小的时候,服务部署方式相对简单,一台数据接收服务器和一台数据库服务器就可以解决接收部分问题,当数据量有所增加的时候,也可以通过扩展硬件的方式来提高数据接收性能,但是,如果数据量成倍怎样,每年都增长的情况下,这样的扩展方式难以维持数据的持续增长、爆发式增长。
因此需要提出一种能够减轻接收端数据接收压力并提高数据接收效率的收据接收系统和方法。
发明内容
本发明的目的是提出一种分布式数据接收系统及数据接收方法,实现够减轻接收端数据接收压力并提高数据接收效率。
为实现上述目的,本发明提出了一种分布式数据接收系统,包括:数据传送接口和至少一个接收端,所述接收端包括反向代理服务器、接口服务器和数据库服务器,所述反向代理服务器多个接口服务器连接,所述接口服务器与所述数据库服务器之间设置有消息队列集群;
所述数据传输接口用于向所述反向代理服务器发送客户端数据;
所述反向代理服务器被配置为代理至少一个所述接口服务器,用于按照预设规则将接收的所述客户端数据分发给多个所述接口服务器,以及将所述接口服务器返回的数据转发给客户端;
所述接口服务器用于验证所述客户端数据,并将验证通过的客户端数据加入所述消息队列集群;
所述数据库服务器用于存储或处理所述消息队列集群中的客户端数据。
可选地,所述反向代理服务器、所接口服务器、所述消息队列集群均支持横向扩展。
可选地,所述反向代理服务器为Nginx服务器。
可选地,所述接口服务器为Tomcat服务器。
可选地,所述消息队列集群包括多个消息中间件,所述消息中间件为ActiveMQ、RabbitMQ、Kafka、RocketMQ的其中之一。
可选地,所述数据传送接口包括多个发送接口,每个所述发送接口与一个所述接收端通信连接。
可选地,所述发送接口通过HTTP协议向所述接收端发送客户端数据。
可选地,所述发送接口通过POST方式向所述接收端发送HTTP连接请求。
可选地,所述发送接口与所述接收端之间通过VPN的方式点对点传输数据。
本发明还一种数据接收方法,基于上述的分布式数据接收系统,所述方法包括:
所述数据传送接口向所述接收端发送客户端数据;
所述接收端中的所述反向代理服务器按照预设规则将所述客户端数据分发给多个所述接口服务器;
所述接口服务器验证所述客户端数据,并将验证通过的客户端数据加入所述消息队列集群;
所述数据库服务器对所述客户端数据进行处理或存储。
本发明的有益效果在于:
通过反向代理服务器代理多个接口服务器,并按照预设规则将接收的客户端数据分发给多个接口服务器,以及将接口服务器返回的数据转发给客户端,能够实现接收端对并发的海量客户端数据的负载均衡,减轻接收端数据接收的压力,通过在接口服务器与数据库服务器之间设置消息队列集群对接收的客户端数据进行缓存处理,能够通过异步处理提高系统性能和削峰、降低系统耦合性,提高数据接收效率并增加数据库使用的灵活性。
本发明的装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明实施例的一种分布式数据接收系统的系统原理图。
具体实施方式
现有的海量数据接收技术架构为:
通过一台Tomcat服务器和一台数据库服务器的方式来接收数据,在小数据量的情况下,系统可以正常运行,但是当数据量增大时,系统难以满足需要;其主要表现在:
当数据量增加,为了保障数据及时传完,需要发送端加大发送量时、就需要增加并发,以确保数据多线程传输,从而导致接收端压力增大,处理速度会大大减少。处理问题不仅体现在接收程序中,因数据量增大,数据库压力也随之增加,如原来一分钟要处理百条数据,现在要以同样的时间处理千条数据,当数据库处理效力降低的时候,是一个递归的下降,一直到数据库达到饱和,不在处理新的数据。因程序耦合度比较高,数据库停止处理新数据,会导致接收端等待状态,等待数据库处理完旧数据后,在继续处理新的数据,会导致整个接收端假死,也会给发送端带来压力。
针对当前问题,本发明主要解决,当并发增大的时候,我们采用软负载,来均摊程序端接收的压力,并且使接收端程序,支持横向扩展。增加消息队列,降低系统程序耦合度的同时使接收端程序和入库端程序分离,提高数据接收效率。
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
图1示出了根据本发明实施例的一种分布式数据接收系统的系统原理图。
如图1所示,根据本发明的一种分布式数据接收系统,包括:
数据传送接口和至少一个接收端,接收端包括反向代理服务器、接口服务器和数据库服务器,反向代理服务器多个接口服务器连接,接口服务器与数据库服务器之间设置有消息队列集群;
数据传输接口用于向反向代理服务器发送客户端数据;
反向代理服务器被配置为代理至少一个接口服务器,用于按照预设规则将接收的客户端数据分发给多个接口服务器,以及将接口服务器返回的数据转发给客户端;
接口服务器用于验证客户端数据,并将验证通过的客户端数据加入消息队列集群;
数据库服务器用于存储或处理消息队列集群中的客户端数据。
具体地,通过反向代理服务器代理多个接口服务器,并按照预设规则将接收的客户端数据分发给多个接口服务器,以及将接口服务器返回的数据转发给客户端,能够实现接收端对并发的海量客户端数据的负载均衡,减轻接收端数据接收的压力,通过在接口服务器与数据库服务器之间设置消息队列集群对接收的客户端数据进行缓存处理,能够通过异步处理提高系统性能和削峰、降低系统耦合性,提高数据接收效率并增加数据库使用的灵活性。
本实施例中,反向代理服务器、所接口服务器、消息队列集群均支持横向扩展。
具体地,每个环节都支持横向扩展,便于程序修改,本领域技术人员可以根据实际需求进行配置,此处不再赘述。
本实施例中,反向代理服务器为Nginx服务器。
具体地,Nginx为现有的开源且高性能的HTTP服务器和反向代理服务器,Nginx服务器接收到之后,按照一定的规则分发给后端的业务处理服务器(接口服务器)进行处理。反向代理,即代理的是服务端,代服务端接收来自客户端的请求,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。Nginx在本实施例中主要用作负载均衡服务器,Nginx服务器接收到的请求数量,即负载量,Nginx服务器能够将请求数量和客户端数据按照一定的规则进行分发到不同的服务器处理的规则,即均衡规则。所以,将服务器接收到的请求和客户端数据按照规则分发的过程,能够实现负载均衡。
本实施例中,接口服务器为Tomcat服务器。
具体地,Tomcat服务器为现有的开放源代码的Web应用服务器,属于轻量级应用服务器,Tomcat运行时占用的系统资源小,扩展性好,能够支持负载均衡等开发应用系统常用的功能。
在一个示例中,消息队列集群包括多个消息中间件,消息中间件为ActiveMQ、RabbitMQ、Kafka、RocketMQ的其中之一。
具体地,消息队列为现有技术,是分布式系统中重要的组件,使用消息队列能够通过异步处理提高系统性能和削峰、降低系统耦合性,提高数据接收效率。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ等。使用消息队列中间件也会让系统可用性降低、复杂度提高。本实施例中的消息中间件为RocketMQ,同时为提高数据接收效率和可扩展行,消息队列为集群形式,并且支持横向扩展。
本实施例中,数据传送接口包括多个发送接口,每个发送接口与一个接收端通信连接。其中,发送接口通过HTTP协议向接收端发送客户端数据。发送接口通过POST方式向接收端发送HTTP连接请求。
具体地,本发明采用HTTP方式的数据接收程序,目前基于HTTP协议传输的主要有HTTP协议和基于HTTP协议的SOAP协议(WebService),常见的方式是HTTP的POST和GET请求,本发明采用POST方式来收发数据,以增加数据传输的安全性。
本实施例中,发送接口与接收端之间通过VPN的方式点对点传输数据。
具体地,本实施例发送接口与接收端之间采用VPN的方式点对点传送数据,能够进一步提供系统数据传输的安全性。在其他实施例中,为增加数据传输的安全性,还可以在每个数据链路上增加密码设备。
本发明实施例还提出还一种数据接收方法,基于上述的分布式数据接收系统,方法包括:
数据传送接口向接收端发送客户端数据;
接收端中的反向代理服务器按照预设规则将客户端数据分发给多个接口服务器;
接口服务器验证客户端数据,并将验证通过的客户端数据加入消息队列集群;
数据库服务器对客户端数据进行处理或存储。
本实施例中,接收端还包括应用程序,应用程序包括接收端程序和入库端程序,接收端程序用于处理接收的客户端数据并将客户端数据转发至消息队列中,入库端程序用于对消息队列中缓存的数据进行提取处理,如存储至数据库中或转发。
参考图1,在一个具体应用示例中,两个不同平台的系统之间需要信息交互,数据接收方法的具体流程如下:
首先通过数据传送接口开始往接收端发送来自企业用户的数据,数据传送链路出于安全考虑,采用VPN的方式点对点传送。当通过网络传送到服务器时,通过软负载(Nginx)来反向代理多个Tomcat服务器,并将接收的数据按照预设规则分发至多个Tomcat服务器,实现数据接收的负载均衡,接口服务器(Tomcat服务器)把验证通过的数据推送到消息队列(RocketMQ)集群,以此数据都在消息队列中,可以随时把数据取出来处理,既可以入库,也可以转送,增加了数据库使用的灵活性。
其中,应用程序处理数据的流程如下:
S1:接收端程序接收来自客户端的HTTP请求数据,HTTP请求数据的格式为XML或JSON,接收端程序根据不同的数据格式解析数据;
S2:根据解析内容,判断数据是否符合接口的标准,若不符合,返回给企业用户相应的错误代码;
S3:若符合,则将数据放入消息队列,并判断该数据是否成功进入消息队列,若未成功,则返回给企业用户相应的错误代码;若成功,则返回企业用户正确的代码;
S4:循环步骤S1至S3,直到消息队列集群中的所有数据处理完成,结束。
综上,本发明解决了数据量增大的情况下数据接口的承载能力,并且每个环节都支持横向扩展,便于程序修改,同时,通过消息队列集群将接收端的程序解耦,可以灵活存取数据并提高数据接收效率。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (5)
1.一种分布式数据接收系统,其特征在于,包括:数据传送接口和多个接收端,所述接收端包括反向代理服务器、接口服务器和数据库服务器,所述反向代理服务器与多个接口服务器连接,所述接口服务器与所述数据库服务器之间设置有消息队列集群;
所述数据传送接口包括多个发送接口,每个所述发送接口与一个所述接收端通信连接;
所述数据传送接口用于向所述反向代理服务器发送客户端数据;
所述反向代理服务器被配置为代理至少一个所述接口服务器,用于按照预设规则将接收的所述客户端数据分发给多个所述接口服务器,以及将所述接口服务器返回的数据转发给客户端;
所述接口服务器用于验证所述客户端数据,并将验证通过的客户端数据加入所述消息队列集群;
所述数据库服务器用于存储或处理所述消息队列集群中的客户端数据;
所述反向代理服务器、所述接口服务器、所述消息队列集群均支持横向扩展;
所述发送接口通过HTTP协议向所述接收端发送客户端数据;
所述发送接口通过POST方式向所述接收端发送HTTP连接请求;
所述发送接口与所述接收端之间通过VPN的方式点对点传输数据。
2.根据权利要求1所述的分布式数据接收系统,其特征在于,所述反向代理服务器为Nginx服务器。
3.根据权利要求1所述的分布式数据接收系统,其特征在于,所述接口服务器为Tomcat服务器。
4.根据权利要求1所述的分布式数据接收系统,其特征在于,所述消息队列集群包括多个消息中间件,所述消息中间件为ActiveMQ、RabbitMQ、Kafka、RocketMQ的其中之一。
5.一种数据接收方法,基于权利要求1-4任一项所述的分布式数据接收系统,其特征在于,所述方法包括:
所述数据传送接口向所述接收端发送客户端数据;
所述接收端中的所述反向代理服务器按照预设规则将所述客户端数据分发给多个所述接口服务器;
所述接口服务器验证所述客户端数据,并将验证通过的客户端数据加入所述消息队列集群;
所述数据库服务器对所述客户端数据进行处理或存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010732485.9A CN112019597B (zh) | 2020-07-27 | 2020-07-27 | 分布式数据接收系统及数据接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010732485.9A CN112019597B (zh) | 2020-07-27 | 2020-07-27 | 分布式数据接收系统及数据接收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019597A CN112019597A (zh) | 2020-12-01 |
CN112019597B true CN112019597B (zh) | 2023-01-10 |
Family
ID=73499622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010732485.9A Active CN112019597B (zh) | 2020-07-27 | 2020-07-27 | 分布式数据接收系统及数据接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019597B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738203A (zh) * | 2020-12-25 | 2021-04-30 | 中孚安全技术有限公司 | 一种基于私有协议的数据处理集群组件方法及系统 |
CN112883097B (zh) * | 2021-03-12 | 2024-02-20 | 北京格瑞拉科技有限公司 | 基于服务器的数据处理方法、服务器集群及服务系统 |
CN113382048A (zh) * | 2021-05-28 | 2021-09-10 | 广东好太太智能家居有限公司 | 一种消息推送方法、系统、设备及存储介质 |
CN115665173B (zh) * | 2022-12-05 | 2023-03-17 | 深圳市华曦达科技股份有限公司 | 一种基于MQ的WebSocket通信方法、系统和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162884A (zh) * | 2015-09-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种基于微服务架构的云管理平台 |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131554A1 (en) * | 2008-11-26 | 2010-05-27 | Yahoo! Inc. | System and method for publishing messages asynchronously in a distributed database |
CN104333573B (zh) * | 2012-06-29 | 2018-04-17 | 北京奇虎科技有限公司 | 一种大并发量请求的处理方法及处理系统 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN109672711B (zh) * | 2017-10-17 | 2021-08-06 | 航天信息股份有限公司 | 一种基于反向代理服务器Nginx的http请求处理方法及系统 |
-
2020
- 2020-07-27 CN CN202010732485.9A patent/CN112019597B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162884A (zh) * | 2015-09-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种基于微服务架构的云管理平台 |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112019597A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019597B (zh) | 分布式数据接收系统及数据接收方法 | |
US8452833B2 (en) | Cached message distribution via HTTP redirects | |
CN111770172B (zh) | 消息中间件消费代理方法、装置、代理服务器及存储介质 | |
CN101388892B (zh) | 用于在客户端侧聚集异步分段请求的方法和装置 | |
CN101739296B (zh) | 数据处理系统和方法 | |
MXPA03006025A (es) | Intercambio de mensajes electronicos entre un sistema de computadora central y un sistema distribuido de computadoras. | |
CN107093138A (zh) | 基于分布式无阻塞异步消息处理模式的拍卖竞价系统及其运行方法 | |
CN113391979A (zh) | 监控数据展示的处理方法、设备、系统及存储介质 | |
CN113179324B (zh) | 一种区块链节点及其执行的业务处理方法 | |
CN112689020A (zh) | 一种消息传输方法、消息中间件、电子设备及存储介质 | |
CN111131470B (zh) | 终端设备及其数据处理方法以及数据处理系统 | |
CN114338769B (zh) | 访问请求的处理方法及装置 | |
CN110798495B (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
CN116382943A (zh) | 顺序消息处理方法、总线系统、计算机设备及存储介质 | |
CN114268631B (zh) | 低延迟网络系统及其通信连接方法及可读存储介质 | |
CN101420392B (zh) | 即时通讯客户端显示弹出窗口的目标数据的方法及客户端 | |
CN112131014A (zh) | 决策引擎系统及其业务处理方法 | |
CN113535426B (zh) | 一种消息下发的优化方法及服务端 | |
CN115665274A (zh) | 异构协议的数据传输方法、系统、电子设备及存储介质 | |
CN114938296A (zh) | 一种多项目单点登录的全局退出方法及系统 | |
CN113810264B (zh) | 信息传输方法、装置、电子设备和存储介质 | |
CN112714181A (zh) | 一种数据传输方法及装置 | |
CN114020412A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
CN112948738A (zh) | 基于mqtt的数据处理方法和装置 | |
CN112073533A (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 |