CN111225069B - 一种分布式行情数据处理系统及方法 - Google Patents
一种分布式行情数据处理系统及方法 Download PDFInfo
- Publication number
- CN111225069B CN111225069B CN202010176774.5A CN202010176774A CN111225069B CN 111225069 B CN111225069 B CN 111225069B CN 202010176774 A CN202010176774 A CN 202010176774A CN 111225069 B CN111225069 B CN 111225069B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- real
- time
- information
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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]
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式行情数据处理系统及方法,系统包括:实时数据采集模块用于采集和存储实时行情数据;历史数据存储模块用于对行情数据进行处理与存储;整合服务模块用于整合基础行情数据及处理行情数据;订阅模块用于接收用户关注的实时行情信息及查询信息;推送模块用于根据所述用户关注的实时行情信息和/或查询信息,向实时数据采集模块发送用户关注的实时行情信息,和/或向整合服务模块发送查询信息,并接收实时行情信息和/或查询结果,并返回给订阅模块。本发明对于实时性高的数据采用socket直连,保证数据第一时间传递到终端,高效、稳定、低延迟;对于需要处理的数据,放入队列,采用多通道分布式数据处理服务进行消费处理后放入缓存。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种分布式行情数据处理系统及方法。
背景技术
在互联网技术发展的今天,行情数据己成为企业、个人关注的关键信息,因此需要对行情数据进行处理。实时行情数据如股票,期货,基金、证券等是重要的信息资源,将信息准确及时地显示给用户是现在各种实时行情系统极其重要的任务。但是,随着实时行情数据来源的多样化,数据量越来越大,现有的实时行情系统利用传统的消息队列的方式进行数据传递,传递过程中会有一定的延时,数据传递到客户端的时间比较长,难以满足用户的需求。
公开号为CN 107424072 A的发明专利申请公开了一种高速分布式股票实时行情推送系统,包括:至少一个用于接收和存储股票实时行情数据的队列模块;至少一个用于从所述队列模块中分拣出与终端订阅的股票信息匹配的实时行情数据的推送模块;至少一个用于与终端建立连接并存储终端订阅的股票信息的接入模块;以及至少一个用于控制推送模块与接入模块数据流转的分发模块。上述申请能够支持千万级终端接入,降低终端接入成本,同时将关注相同股票的终端进行聚合,以此集合作为推送单元,提升股票行情的推送效率。
然而,上述申请仍然利用消息队列的方式进行数据传递,仍然存在很大的数据延迟。此外,现有的行情数据处理系统大都集中于对实时数据的处理,而忽略了对于历史数据的管理与处理。对于历史数据,其甚至涵盖多年的数据,数据量巨大,在存储和查询方便存在效率问题。现有的对历史数据的处理方案更多的是将部分常用数据存储在缓存中,仍然无法解决历史数据快速查询的效率问题。
因此,如何实现快速、高效的实时行情数据及历史行情数据的处理,是本领域亟待解决的问题。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种一种分布式行情数据处理系统及方法。对于实时性高的一手数据各系统采用socket直连的方式,保证数据第一时间传递到终端,高效、稳定、低延迟;对于需要处理的数据,放入队列,采用多通道分布式数据处理服务进行消费处理后放入缓存。本发明对于历史数据的存取采用基于开源大数据服务tidb,自行搭建的集群服务,多节点热备,保证服务的高效、稳定。
为了实现以上目的,本发明采用以下技术方案:
一种分布式行情数据处理系统,包括:实时数据采集模块、历史数据存储模块、整合服务模块、推送模块、订阅模块,其中,实时数据采集模块与历史数据存储模块、推送模块连接,整合服务模块与历史数据存储模块、推送模块连接,订阅模块与推送模块连接;
所述实时数据采集模块包括实时行情数据库及数据源服务,用于采集和存储实时行情数据;
所述历史数据存储模块用于对行情数据进行处理与存储;
所述整合服务模块用于整合所述数据源服务中的基础行情数据及所述历史数据存储模块存储的处理行情数据;
所述订阅模块用于接收用户关注的实时行情信息及查询信息;
所述推送模块用于根据所述用户关注的实时行情信息和/或查询信息,向实时数据采集模块发送用户关注的实时行情信息,和/或向整合服务模块发送查询信息,并接收实时行情信息和/或查询结果,并返回给订阅模块。
进一步地,所述历史数据存储模块包括RabbitMQ、多通道分布式数据处理服务、redis。
进一步地,所述推送模块包括负载均衡服务器、主推送服务器、一个或多个备用推送服务器,推送服务器与负载均衡服务器相连,由负载均衡服务器进行统一的管理。
进一步地,所述实时数据采集模块与订阅模块采用socket直连,所述推送服务器、负载均衡服务器采用socket直连。
进一步地,在收市后,redis将数据同步至tidb。
进一步地,所述整合服务模块与推送模块采用Dubbo框架。
本发明还提出一种分布式行情数据处理方法,包括步骤:
S1、推送模块接收用户通过订阅模块发送的信息,若所述信息为订阅信息,执行步骤S2,若所述信息为历史数据查询请求,执行步骤S3;
S2、实时数据采集模块不断将采集到的实时行情属于与客户端订阅的行情信息进行匹配,若匹配成功,则将实时的行情数据通过与socket直连推送模块发送给相应的订阅模块;
S3、整合服务模块整合判断查询请求查询的数据为基础数据还是处理数据,若为基础数据,则从所述数据源服务中获取,若为处理数据,则从所述历史数据存储模块查询。
进一步地,所述步骤S1包括:
S11、负载均衡服务器接收用户通过订阅模块发送的信息,获取主推送服务器的响应速度;
S12、判断主推送服务器的响应速度是否低于一定阈值,若是,将所述订阅模块发送的信息发送给备用推送服务器,否则,发送给主推送服务器。
进一步地,所述步骤S1包括:
S10、判断订阅模块发送的信息中是否存在token,若存在,则对token进行验证,若不存在,则通过认证码申请token,当token通过验证时发送订阅模块发送的信息。
进一步地,所述处理数据的具体生成如下:
S31、接收实时数据采集模块传入的需要处理的数据,并将数据放入RabbitMQ;
S32、采用多通道分布式数据处理服务进行处理;
S33、将处理生成的存入放入redis。
本发明提出的分布式行情数据处理方法及系统,与现有技术相比,具有如下优点:
(1)本发明对于实时性高的一手数据各系统采用socket直连的方式,保证数据第一时间传递到终端,实现数据推送的高效、稳定、低延迟;
(2)本发明对于需要处理的数据,放入队列,采用多通道分布式数据处理服务进行消费处理后放入缓存,有效克服了现有的历史数据查询效率低的问题,提高了用户体验;
(3)本发明对于历史数据的存取采用基于开源大数据服务tidb,提高了历史数据查询的效率,保障了历史数据查询的稳定性、高效性;
(4)本发明实现多节点平行扩展,推送模块可以根据用户所在区域,跨机房的部署多个推送服务器。推送服务器之间通过互相配置构成集群,进行数据转发,实现无限横向扩展;客户端会自动选择接入最优的节点进行数据传输,通过自行搭建的集群服务,多节点设备,保证服务的高效、稳定;
(5)本发明采用token对客户端进行验证,有效保障了数据的安全性,服务端通过校验token的有效性及一致性确保数据的安全,大大的提高了同步的适应性和信息传递的安全性。
附图说明
图1是实施例一提供的一种分布式行情数据处理系统结构图;
图2是实施例二提供的一种分布式行情数据处理方法流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
实施例一
如图1所示,本实施例提出了一种分布式行情数据处理系统,包括:实时数据采集模块、历史数据存储模块、整合服务模块、推送模块、订阅模块,其中,实时数据采集模块与历史数据存储模块、推送模块连接,整合服务模块与历史数据存储模块、推送模块连接,订阅模块与推送模块连接。
具体地,实时数据采集模块用于采集和存储实时行情数据,实时数据采集模块包括实时行情数据库及数据源服务。可以根据需要实时的从各种交易渠道获得正式发布的行情数据。抓取的方式可以根据配置文件进行相应的配置,如从交易端远程的ftp上抓取数据,从交易所对外开放的Socket服务器抓取数据,还可以从交易所提供的web网页上抓取数据等。抓取数据时可以根据数据的具体格式进行多线程抓取,并且采用事务性质方式,即同一批数据按事务性质由多线程顺序存入相应的存储单元,多个线程都成功存入后才算抓取成功。采用这种方式能够很好地协调多线程之间数据不一致的情况,克服了传统的按顺序抓取数据的时间延迟问题。
实时数据采集模块与订阅模块采用socket直连的方式。对于实时性要求高的一手数据通过socket直连的方式,保证数据第一时间传递到终端,实现数据推送的高效、稳定、低延迟。
订阅模块包含于客户端设备,客户端设备可为智能手机、平板电脑、智能电视中以及PC等,但不限于此,可以为任何具有获取行情信息功能的终端设备。用户通过订阅模块订阅关注的实时行情信息,并将订阅信息通过推送模块传输到实时数据采集模块,实时数据采集模块收集所有客户端订阅的行情信息。同时,实时数据采集模块不断将采集到的实时行情属于与客户端订阅的行情信息进行匹配,若匹配成功,则将实时的行情数据通过推送模块发送给相应的订阅模块。订阅信息为用户感兴趣的信息,例如,当用户对某只股票感兴趣时,订阅该股票所有相关的资讯信息。当实时数据采集模块采集到该股票相关资讯后,将该资讯信息通过推送模块推送给订阅模块。为了降低数据通过消息队列进行传递时的延迟,本发明推送模块、订阅模块也通过socket直连的方式进行连接。
此外,对于原始采集的数据,可能还需要进行进一步加工,例如对采集的股价信息进行分析、比对等,因此,本发明采用历史数据存储模块存储实时性要求不高、进行二次加工生成的数据。可以对数据进行处理,传入历史数据存储模块进行存储,当用户需要查询历史数据时,通过订阅模块提交查询请求,查询请求通过推送模块发送到历史数据存储模块,通过对历史数据存储模块中数据的检索,通过推送模块返回相应的历史数据查询结果。
为了克服现有的历史数据查询效率低的问题,本发明历史数据存储模块包括队列、多通道分布式数据处理服务、数据库。历史数据存储模块接收实时数据采集模块传入的需要处理的数据,并将数据放入队列,采用多通道分布式数据处理服务进行处理后放入数据库。具体地,处理后的数据放入redis数据库,同时,在收市后,将数据同步至tidb。队列可以采用RabbitMQ。对于历史数据的存取采用基于开源大数据服务tidb,提升了数据的访问效率。
如上所述,实时性要求高的一手数据存储于实时数据采集模块,实时性要求不高、进行二次加工生成的数据存储于用历史数据存储模块。用户通过订阅模块发送历史数据查询请求,请求的数据可能包括一手数据,也可能包括二次加工生成的数据,因此,本发明通过整合服务模块整合一手数据及二手数据。具体地,整合服务模块与实时数据采集模块中的数据源服务、历史数据存储模块中的redis、tidb连接。为了提高系统的稳定性,整合服务模块与推送模块采用Dubbo框架。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
推送模块收集订阅模块的行情订阅信息及查询信息,并且不间断从实时数据采集模块接收推送的行情信息及整合服务模块返回的查询信息。为了实现多节点平行扩展,推送模块可以根据用户所在区域,跨机房的部署多个推送服务器。推送服务器之间通过互相配置构成集群,进行数据转发,实现无限横向扩展。此外,即使在同一区域,也可以根据用户数量设置多个不同的推送服务器,推送服务器的具体设置在此不作限定。多个推送服务器可以同时向同一个订阅模块推送行情数据以提高效率,反之,之也可以由同一个推送模块同时向多个订阅模块推送(相同或不同的)行情数据,根据需要和效率而定,并无特别限制。
同时为了实现多个推送服务器的集中管理,本发明推送模块包括负载均衡服务器(Server Load Balancing,SLB)。所有的推送服务器与负载均衡服务器相连,由负载均衡服务器进行统一的管理。订阅模块与负载均衡服务器进行直接交互。负载均衡服务器设置推送服务器、备用推送服务器。备用推送服务器可以为一个或多个,可以为同级别的推送服务器,也可以在备推送服务器中设置优先级,优先级越高,越先分配。负载均衡服务器接收客户端的订阅或查询请求,并获取主推送服务器的服务状态,服务状态包括服务器的响应速度。当主推送服务器的响应速度低于一定阈值时,将客户端的订阅或查询请求发送给备用推送服务器,以此类推,直到选择出满足需求的推送服务器。相应地,对于推送的实时行情数据或返回的历史行情数据通过选择的推送服务器进行推送。本发明通过负载均衡服务器进行推送服务器管理,使客户端会自动选择接入最优的节点进行数据传输。为了降低数据通过消息队列进行传递时的延迟,本发明推送服务器、负载均衡服务器也通过socket直连的方式进行连接。通过ProtoBuf(Google Protocol Buffer)进行数据交互。
为了保障数据的安全性,本发明为客户端生成相应的token,当订阅模块发送订阅或查询请求,负载均衡服务器判断订阅或查询请求中是否存在token,若存在,则对请求进行验证,若不存在,则通过认证码申请token,负载均衡服务器将认证码进行验证后生成token,验证码包括客户端提供的用户名、密码等,生成token后,将token返回给客户端进行存储,当客户端再次发送订阅或查询请求时,客户端专属的token被附加在请求中。服务端通过校验token的有效性及一致性确保数据的安全,大大的提高了同步的适应性和信息传递的安全性。
实施例二
如图2所示,本实施例提出了一种分布式行情数据处理方法,包括:
S1、推送模块接收用户通过订阅模块发送的信息,若所述信息为订阅信息,执行步骤S2,若所述信息为历史数据查询请求,执行步骤S3;
订阅模块包含于客户端设备,客户端设备可为智能手机、平板电脑、智能电视中以及PC等,但不限于此,可以为任何具有获取行情信息功能的终端设备。用户可以通过订阅模块订阅关注的实时行情信息,并将订阅信息发送到推送模块。此外,当用户需要查询历史数据时,通过订阅模块提交查询请求,查询请求发送到推送模块。
推送模块收集订阅模块的行情订阅信息及查询信息,并且不间断从实时数据采集模块接收推送的行情信息及整合服务模块返回的查询信息。为了实现多节点平行扩展,推送模块可以根据用户所在区域,跨机房的部署多个推送服务器。推送服务器之间通过互相配置构成集群,进行数据转发,实现无限横向扩展。此外,即使在同一区域,也可以根据用户数量设置多个不同的推送服务器,推送服务器的具体设置在此不作限定。多个推送服务器可以同时向同一个订阅模块推送行情数据以提高效率,反之,之也可以由同一个推送模块同时向多个订阅模块推送(相同或不同的)行情数据,根据需要和效率而定,并无特别限制。
同时为了实现多个推送服务器的集中管理,本发明推送模块包括负载均衡服务器(Server Load Balancing,SLB)。所有的推送服务器与负载均衡服务器相连,由负载均衡服务器进行统一的管理。订阅模块与负载均衡服务器进行直接交互。负载均衡服务器设置推送服务器、备用推送服务器。备用推送服务器可以为一个或多个,可以为同级别的推送服务器,也可以在备推送服务器中设置优先级,优先级越高,越先分配。因此,所述步骤S1包括:
S11、负载均衡服务器接收用户通过订阅模块发送的信息,获取主推送服务器的响应速度;
S12、判断主推送服务器的响应速度是否低于一定阈值,若是,将所述订阅模块发送的信息发送给备用推送服务器,否则,发送给主推送服务器。
由于备用推送服务器可以为一个或多个,因此可以根据优先级或随机依次选择备用推送服务器,直到选择出满足响应速度需求的推送服务器。相应地,对于推送的实时行情数据或返回的历史行情数据通过选择的推送服务器进行推送。本发明通过负载均衡服务器进行推送服务器管理,使客户端会自动选择接入最优的节点进行数据传输。为了降低数据通过消息队列进行传递时的延迟,本发明推送服务器、负载均衡服务器也通过socket直连的方式进行连接。通过ProtoBuf(Google Protocol Buffer)进行数据交互。
为了保障数据的安全性,本发明对接入系统的用户进行验证,本发明为客户端生成相应的token,当订阅模块发送订阅或查询请求,负载均衡服务器通过验证token来用户是否为合法用户,避免恶意用户大量订阅或获取数据,影响数据的安全性及系统效率。因此,本发明所述数据处理方法在步骤S1还包括:
S10、判断订阅模块发送的信息中是否存在token,若存在,则对token进行验证,若不存在,则通过认证码申请token。
通过认证码申请token时,负载均衡服务器将认证码进行验证后生成token,验证码包括客户端提供的用户名、密码等,生成token后,将token返回给客户端进行存储,当客户端再次发送订阅或查询请求时,客户端专属的token被附加在请求中。服务端通过校验token的有效性及一致性确保数据的安全,大大的提高了同步的适应性和信息传递的安全性。
S2、实时数据采集模块不断将采集到的实时行情属于与客户端订阅的行情信息进行匹配,若匹配成功,则将实时的行情数据通过与socket直连推送模块发送给相应的订阅模块;
具体地,实时数据采集模块用于采集和存储实时行情数据,实时数据采集模块包括实时行情数据库及数据源服务。可以根据需要实时的从各种交易渠道获得正式发布的行情数据。抓取的方式可以根据配置文件进行相应的配置,如从交易端远程的ftp上抓取数据,从交易所对外开放的Socket服务器抓取数据,还可以从交易所提供的web网页上抓取数据等。抓取数据时可以根据数据的具体格式进行多线程抓取,并且采用事务性质方式,即同一批数据按事务性质由多线程顺序存入相应的存储单元,多个线程都成功存入后才算抓取成功。采用这种方式能够很好地协调多线程之间数据不一致的情况,克服了传统的按顺序抓取数据的时间延迟问题。
实时数据采集模块与订阅模块采用socket直连的方式。对于实时性要求高的一手数据通过socket直连的方式,保证数据第一时间传递到终端,实现数据推送的高效、稳定、低延迟。
推送模块将从订阅模块接收的订阅信息传输到实时数据采集模块,实时数据采集模块收集所有客户端订阅的行情信息。实时数据采集模块不断将采集到的实时行情属于与客户端订阅的行情信息进行匹配,若匹配成功,则将实时的行情数据通过推送模块发送给相应的订阅模块。订阅信息为用户感兴趣的信息,例如,当用户对某只股票感兴趣时,订阅该股票所有相关的资讯信息。当实时数据采集模块采集到该股票相关资讯后,将该资讯信息通过推送模块推送给订阅模块。为了降低数据通过消息队列进行传递时的延迟,本发明推送模块、订阅模块也通过socket直连的方式进行连接。
S3、整合服务模块整合判断查询请求查询的数据为基础数据还是处理数据,若为基础数据,则从数据源服务中获取,若为处理数据,则从历史数据存储模块查询。
对于原始采集的数据,可能还需要进行进一步加工,例如对采集的股价信息进行分析、比对等,因此,本发明采用历史数据存储模块存储实时性要求不高、进行二次加工生成的数据。可以对数据进行处理,传入历史数据存储模块进行存储,当用户需要查询历史数据时,通过订阅模块提交查询请求,查询请求通过推送模块发送到历史数据存储模块,通过对历史数据存储模块中数据的检索,通过推送模块返回相应的历史数据查询结果。
为了克服现有的历史数据查询效率低的问题,本发明历史数据存储模块包括队列、多通道分布式数据处理服务、数据库。对数据进行处理具体包括:
S31、接收实时数据采集模块传入的需要处理的数据,并将数据放入队列;
S32、采用多通道分布式数据处理服务进行处理;
S33、将处理生成的存入放入数据库。
具体地,处理后的数据放入redis数据库,同时,在收市后,将数据同步至tidb。队列可以采用RabbitMQ。对于历史数据的存取采用基于开源大数据服务tidb,提升了数据的访问效率。
如上所述,实时性要求高的一手数据存储于实时数据采集模块,实时性要求不高、进行二次加工生成的数据存储于用历史数据存储模块。用户通过订阅模块发送历史数据查询请求,请求的数据可能包括一手数据,也可能包括二次加工生成的数据,因此,本发明通过整合服务模块整合一手数据及二手数据。整合服务模块与推送模块直接连接,接收推送模块传入的历史数据查询请求。若查询请求查询的为基础数据,则从数据源服务中获取,若为处理数据,则从历史数据存储模块查询。具体地,整合服务模块与实时数据采集模块中的数据源服务、历史数据存储模块中的redis、tidb连接。为了提高系统的稳定性,整合服务模块与推送模块采用Dubbo框架。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
此可知,本发明提出的分布式行情数据处理方法及系统,对于实时性高的一手数据各系统采用socket直连的方式,保证数据第一时间传递到终端,实现数据推送的高效、稳定、低延迟;对于需要处理的数据,放入队列,采用多通道分布式数据处理服务进行消费处理后放入缓存,有效克服了现有的历史数据查询效率低的问题,提高了用户体验;对于历史数据的存取采用基于开源大数据服务tidb,提高了历史数据查询的效率,保障了历史数据查询的稳定性、高效性;同时,实现多节点平行扩展,推送模块可以根据用户所在区域,跨机房的部署多个推送服务器。推送服务器之间通过互相配置构成集群,进行数据转发,实现无限横向扩展;客户端会自动选择接入最优的节点进行数据传输,通过自行搭建的集群服务,多节点设备,保证服务的高效、稳定;采用token对客户端进行验证,有效保障了数据的安全性,服务端通过校验token的有效性及一致性确保数据的安全,大大的提高了同步的适应性和信息传递的安全性。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种分布式行情数据处理系统,其特征在于,包括:实时数据采集模块、历史数据存储模块、整合服务模块、推送模块、订阅模块,其中,实时数据采集模块与历史数据存储模块、推送模块连接,整合服务模块与历史数据存储模块、推送模块连接,订阅模块与推送模块连接;
所述实时数据采集模块包括实时行情数据库及数据源服务,用于采集和存储实时行情数据;所述实时数据采集模块抓取数据时根据数据的具体格式进行多线程抓取,并且采用事务性质方式,即同一批数据按事务性质由多线程顺序存入相应的存储单元,多个线程都成功存入后才算抓取成功;
所述历史数据存储模块用于对行情数据进行处理与存储;
所述整合服务模块用于整合所述数据源服务中的基础行情数据及所述历史数据存储模块存储的处理行情数据;
所述订阅模块用于接收用户关注的实时行情信息及查询信息;
所述推送模块用于根据所述用户关注的实时行情信息和/或查询信息,向实时数据采集模块发送用户关注的实时行情信息,和/或向整合服务模块发送查询信息,并接收实时行情信息和/或查询结果,并返回给订阅模块;
所述推送模块包括负载均衡服务器,负载均衡服务器设置推送服务器、备用推送服务器,负载均衡服务器接收客户端的订阅或查询请求,并获取主推送服务器的服务状态,服务状态包括服务器的响应速度,当主推送服务器的响应速度低于阈值时,将客户端的订阅或查询请求发送给备用推送服务器,直到选择出满足需求的推送服务器。
2.根据权利要求1所述的分布式行情数据处理系统,其特征在于,所述历史数据存储模块包括RabbitMQ、多通道分布式数据处理服务、redis。
3.根据权利要求1所述的分布式行情数据处理系统,其特征在于,所述推送模块包括负载均衡服务器、主推送服务器、一个或多个备用推送服务器,推送服务器与负载均衡服务器相连,由负载均衡服务器进行统一的管理。
4.根据权利要求3所述的分布式行情数据处理系统,其特征在于,所述实时数据采集模块与订阅模块采用socket直连,所述推送服务器、负载均衡服务器采用socket直连。
5.根据权利要求2所述的分布式行情数据处理系统,其特征在于,在收市后,redis将数据同步至tidb。
6.根据权利要求1所述的分布式行情数据处理系统,其特征在于,所述整合服务模块与推送模块采用Dubbo框架。
7.一种分布式行情数据处理方法,基于权利要求1-6任一项所述的数据处理系统,其特征在于,包括步骤:
S1、推送模块接收用户通过订阅模块发送的信息,若所述信息为订阅信息,执行步骤
S2,若所述信息为历史数据查询请求,执行步骤S3;
S2、实时数据采集模块不断将采集到的实时行情属于与客户端订阅的行情信息进行匹配,若匹配成功,则将实时的行情数据通过与socket直连推送模块发送给相应的订阅模块;
S3、整合服务模块整合判断查询请求查询的数据为基础数据还是处理数据,若为基础数据,则从所述数据源服务中获取,若为处理数据,则从所述历史数据存储模块查询。
8.根据权利要求7所述的分布式行情数据处理方法,其特征在于,所述S1包括:
S11、负载均衡服务器接收用户通过订阅模块发送的信息,获取主推送服务器的响应速度;
S12、判断主推送服务器的响应速度是否低于一定阈值,若是,将所述订阅模块发送的信息发送给备用推送服务器,否则,发送给主推送服务器。
9.根据权利要求7或8所述的分布式行情数据处理方法,其特征在于,所述步骤S1包括:
S10、判断订阅模块发送的信息中是否存在token,若存在,则对token进行验证,若不存在,则通过认证码申请token,当token通过验证时发送订阅模块发送的信息。
10.根据权利要求7所述的分布式行情数据处理方法,其特征在于,所述处理数据的具体生成如下:
S31、接收实时数据采集模块传入的需要处理的数据,并将数据放入RabbitMQ;
S32、采用多通道分布式数据处理服务进行处理;
S33、将处理生成的存入放入redis。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176774.5A CN111225069B (zh) | 2020-03-13 | 2020-03-13 | 一种分布式行情数据处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176774.5A CN111225069B (zh) | 2020-03-13 | 2020-03-13 | 一种分布式行情数据处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111225069A CN111225069A (zh) | 2020-06-02 |
CN111225069B true CN111225069B (zh) | 2023-06-20 |
Family
ID=70830064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010176774.5A Active CN111225069B (zh) | 2020-03-13 | 2020-03-13 | 一种分布式行情数据处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111225069B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737622B (zh) * | 2020-06-18 | 2023-07-04 | 上海英方软件股份有限公司 | 一种订阅行情信息流的方法及装置 |
CN112217866B (zh) * | 2020-09-09 | 2023-02-28 | 苏州工业园区凌志软件股份有限公司 | 一种内外网行情数据转发系统及方法 |
CN112217798B (zh) * | 2020-09-09 | 2023-04-07 | 苏州工业园区凌志软件股份有限公司 | 一种行情流处理系统及方法 |
CN112541101B (zh) * | 2020-12-11 | 2023-04-21 | 武汉旷视金智科技有限公司 | 订阅数据的推送方法、装置、电子设备及计算机存储介质 |
CN113222765B (zh) * | 2021-05-31 | 2021-11-19 | 深圳华云信息系统有限公司 | 行情数据推送方法、装置、电子设备及存储介质 |
CN114116264A (zh) * | 2021-12-02 | 2022-03-01 | 上海朝阳永续信息技术股份有限公司 | 一种服务间实时数据交换的系统及方法 |
CN114331715A (zh) * | 2021-12-09 | 2022-04-12 | 盈立数智科技(深圳)有限公司 | 一种易于控制的清盘行情发送方法及系统 |
CN114124968B (zh) * | 2022-01-27 | 2022-05-20 | 深圳华锐金融技术股份有限公司 | 基于行情数据的负载均衡方法、装置、设备及介质 |
CN114723565B (zh) * | 2022-06-02 | 2022-08-23 | 高盈国际创新科技(深圳)有限公司 | 基于golang的多源多语言信息处理方法及系统 |
CN115150380A (zh) * | 2022-06-30 | 2022-10-04 | 广发证券股份有限公司 | 一种适用于多路行情源的行情订阅及发布方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107229639A (zh) * | 2016-03-24 | 2017-10-03 | 上海宝信软件股份有限公司 | 分布式实时数据库的存储系统 |
CN109684416A (zh) * | 2018-11-13 | 2019-04-26 | 国电南京自动化股份有限公司 | 一种高并发实时历史数据存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110313969A1 (en) * | 2010-06-17 | 2011-12-22 | Gowda Timma Ramu | Updating historic data and real-time data in reports |
-
2020
- 2020-03-13 CN CN202010176774.5A patent/CN111225069B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107229639A (zh) * | 2016-03-24 | 2017-10-03 | 上海宝信软件股份有限公司 | 分布式实时数据库的存储系统 |
CN109684416A (zh) * | 2018-11-13 | 2019-04-26 | 国电南京自动化股份有限公司 | 一种高并发实时历史数据存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111225069A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111225069B (zh) | 一种分布式行情数据处理系统及方法 | |
US11411897B2 (en) | Communication method and communication apparatus for message queue telemetry transport | |
US20150237113A1 (en) | Method and system for file transmission | |
EP1330907B1 (en) | Method and apparatus for real-time parallel delivery of segments of a large payload file | |
CN101938502B (zh) | 一种服务器集群系统及负载均衡方法 | |
US20020007374A1 (en) | Method and apparatus for supporting a multicast response to a unicast request for a document | |
US20130297801A1 (en) | Managing multiple proxy servers in a multi-tenant application system environment | |
WO2020186807A1 (zh) | 一种基于区块链技术的电力数据链接系统及方法 | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
KR20010088742A (ko) | 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법 | |
CN101383839A (zh) | 基于数据服务器的数据分发系统及其实现方法 | |
US20140025838A1 (en) | System and method of streaming data over a distributed infrastructure | |
US20180337840A1 (en) | System and method for testing filters for data streams in publisher-subscriber networks | |
CN114268631B (zh) | 低延迟网络系统及其通信连接方法及可读存储介质 | |
CN102932269A (zh) | 负载均衡的实现方法和装置 | |
CN101064715A (zh) | 基于嵌入式系统的p2p技术实现 | |
CN111427703A (zh) | 工业数据实时展示方法及系统 | |
CN110493245A (zh) | 一种基于分布式并行系统的流媒体数据分发系统 | |
CN104731660B (zh) | 数据分配方法、装置和系统 | |
CN110990213A (zh) | 一种集群环境用户日志实时监控方法及装置 | |
CN113612811B (zh) | 一种在多通道中客户端挂载的方法、系统、设备及介质 | |
CN114615315A (zh) | 线上会话的通讯方法、装置、设备及存储介质 | |
CN107330089B (zh) | 跨网络结构化数据收集系统 | |
CN111294383A (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 |