CN104392377A - 一种云交易系统 - Google Patents
一种云交易系统 Download PDFInfo
- Publication number
- CN104392377A CN104392377A CN201410750723.3A CN201410750723A CN104392377A CN 104392377 A CN104392377 A CN 104392377A CN 201410750723 A CN201410750723 A CN 201410750723A CN 104392377 A CN104392377 A CN 104392377A
- Authority
- CN
- China
- Prior art keywords
- transaction
- server
- information
- transaction information
- cloud
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云交易系统,其特征在于,包括:连接多个客户端的至少两个客户端服务器,中间件服务器,撮合服务器;其中,在撮合服务器中包括处理模块和存储模块,在客户端服务器接收到交易信息时发送至中间件服务器,中间件服务器对接收到的交易信息进行分布并传递至执行撮合任务的撮合服务器,撮合服务器将交易信息存储至存储模块,根据撮合队列在处理模块中对交易信息进行处理,并将处理后的结果输出至外接数据库中,解决了现有技术中存在交易系统中对大数据存在处理缓慢的技术问题,实现了能够及时处理交易的大数据,提高交易的速度的技术效果。
Description
技术领域
本发明涉及大宗商品交易电子平台技术领域,尤其涉及一种云交易系统。
背景技术
随着计算机网络技术的发展,国际和国内的大宗商品交易所的交易模块发生了根本性的改变,电子化交易已经成为主要的交易模式,交易系统是交易所的关键业务系统,其运行的稳定可靠与否直接关系到交易体系的安全,交易系统最重要的特点,用户数量多,处理的并发数大,数据量大,实时性要求高等特点。
现在的交易系统在处理大并发数据时,由于采用传统磁盘数据库对交易数据进行存储和处理,由于该传统磁盘数据在输入输出的瓶颈,因此,存在撮合缓慢,处理时间长于5s以上,对实时价格的反应比较缓慢。现有的交易撮合系统基本都采用数据库队列技术,对大数据的处理不及时。
因此,现有技术中存在在交易系统中对大数据存在处理缓慢的技术问题。
发明内容
本发明实施例通过提供一种云交易系统,解决了现有技术中存在交易系统中对大数据存在处理缓慢的技术问题,实现了能够及时处理交易的大数据,提高交易的速度的技术效果。
本发明实施例提供了一种云交易系统,包括:包括:连接多个客户端的至少两个客户端服务器,中间件服务器,撮合服务器;
其中,在撮合服务器中包括处理模块和存储模块,在客户端服务器接收到交易信息时发送至中间件服务器,中间件服务器对接收到的交易信息进行分布并传递至执行撮合任务的撮合服务器,撮合服务器将交易信息存储至存储模块,根据撮合队列在处理模块中对交易信息进行处理,并将处理后的结果输出至外接数据库中。
进一步地,所述交易信息具体包括委托信息、查询信息、行情发布请求信息以及监控信息。
进一步地,外接数据库包括:日志文件数据库和磁盘数据库,日志文件数据库对每次交易的结果产生的日志信息进行记录,磁盘数据库保存整个交易的数据和状态。
进一步地,还包括:监控服务器,连接中间件服务器,对中间件服务器接收到的交易信息以及对交易信息进行分布、传递的状况进行监控。
进一步地,撮合服务器中的处理模块对存储在存储模块中的交易信息直接进行查找、插入和拥塞控制的处理。
进一步地,处理模块对交易信息通过查找算法进行查找处理;处理模块对交易信息通过插入算法进行插入处理;处理模块对交易信息的数据流进行拥塞控制。
进一步地,在撮合服务器中还包括读写模块,当需读取交易的结果数据时,从存储模块进行读取;当需写入数据时,从连接撮合服务器的外接数据库中写入。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、由于采用在撮合服务器中设置处理模块和存储模块,在由存储模块接收到中间件服务器发送的交易信息,根据撮合队列的顺序在处理模块中进行处理,并将处理后的结果输出至外接数据库中,使得数据处理过程在处理模块中进行,解决了现有技术中在对大数据量存在处理缓慢的技术问题,实现了能够及时处理交易的大数据,提高交易的速度的技术效果。
2、由于在该云交易系统中还包括有监控服务器,连接中间件服务器,对中间件服务器接收到的交易信息以及对交易信息进行分布、传递的状况进行监控,从而保障了云交易系统的安全性。
3、由于在该撮合服务器中还设置有读写模块,当需要读取交易的结果数据时,从存储模块进行读取;当需写入数据时,从外接数据库中写入;这样保证了撮合处理与读写数据的分离,进而也提高了交易速度。
附图说明
图1为本发明实施例中云交易系统的结构示意图;
图2为本发明实施例中撮合服务器与外接数据库的内部模块示意图;
图3为本发明实施例中T树节点指针的结构示意图;
图4为本发明实施例中云交易系统中各线程之间的关系结构示意图。
具体实施方式
本发明实施例通过提供一种云交易系统,解决了现有技术中在交易系统中对大数据存在处理速度缓慢的技术问题,进而实现了能够及时处理交易的大数据,提高交易的速度的技术效果。
为了解决现有技术中在交易系统中对大数据存在处理速度缓慢的技术问题,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本发明提供的一种云交易系统,如图1所示,包括:连接多个客户端的至少两个客户端服务器,具体为多个委托服务器101(Broker1,Broker2,Broker3......Broker n),所述客户端服务器连接至中间件服务器102(MomServer1,MomServer2......MomServer n),中间件服务器102对接收到的交易信息进行分布并传递至执行撮合任务的撮合服务器103,撮合服务器103中包括处理模块和存储模块,撮合服务器103将交易信息存储至存储模块,根据撮合队列在处理模块中对交易信息进行处理,并将处理后的结果输出至外接数据库104中。
在具体的实施方式中,采用多级服务器进行处理的方式,由多个委托服务器101(Broker1,Broker2,Broker3......Broker n)连接至多个分布和传递交易信息的中间件服务器(MomServer1,MomServer2......MomServer n),然后将多个中间件服务器102连接至多个撮合服务器103,同时,撮合服务器103还连接外接数据库104。
其中,介绍上述撮合服务器103中的结构。在多个委托服务器101与撮合服务器103进行通信的过程中,是将接收到的委托信息,查询信息、行情发布请求信息以及监控信息通过中间服务器102发送至撮合服务器103的。这里,中间件服务器103起到传递的作用。
如图2所示,撮合服务器103中由两部分组成,一个是处理模块1031,另一个是存储模块1032,首先,存储模块1032将由中间件服务器102发送的交易信息进行存储,然后根据撮合队列在处理模块1031中对交易信息进行处理。具体地,处理模块1031对交易信息直接进行查找、插入和拥塞控制的处理。
在具体的实施方式中,云撮合队列结构中关键字存放股票实例,其结构如下:Struct股票{价格;时间;数量}。
多种股票按照价格和时间进行排序,存放在T树的节点中。如图3所示,为节点指针的结构示意图。
下面介绍撮合引擎为委托信息、查询信息、行情发布请求信息以及监控信息提供的查找处理、插入处理、拥塞控制处理以及读写分离处理的过程。
首先介绍查找处理算法,具体采用T树的查找,T树的查找和二叉树查找类似,从根节点开始查找,如果当前的搜索节点为空,查找失败。
如果待查找的股票小于节点中的最小股票,即节点中的最小值(最左值),则继续查找该节点的左子树;如果待查找的股票大于节点中最大的股票,即节点中最大值(最右值),则查找该节点的右子树;否则,利用二分法在节点中查找待查找的股票,如果找到了股票,查找成功,否则查找失败。
通过上述的查找算法能够快速查找到对应放置股票的位置。
在查找到放置股票的位置时,可以将适当的股票放入该区域。
因此,对Y树的插入算法进行详细描述。
例如,查找接线节点NN,即所查找的股票大于等于NN中的最小值,小于等于NN中最大值的节点。界限点NN找到了,判断NN中是否有空间可以插入股票,如果有,则插入成功。如果没有,则删除NN中最小值M,插入股票。然后,查找NN的最大下线节点XN。如果XN中有空间,则插入M,如果没有,则新生节点TN,把M插入TN,把TN作为XN的左子树。如果查找了整棵树,没有找到界限节点,则新生节点TN,插入股票,把TN作为当前路径上的最后一个节点的左子树或右子树。如果有新节点插入,则从新节点到树根,判断树的平衡性并调整。
具体为处理模块中进行的处理线程进行详细描述。
如图4所示,在撮合处理过程中根据消息队列进行上述的处理。由于在大宗商品的交易过程中,对交易信息可建立两个消息队列,一是用于向撮合引擎发送消息,另一个用于从撮合引擎接收消息应答。客户端服务器101发送来的数据包通过消息中间件以消息的形式填入消息发送队列,当然,可以是多个消息同时发送至消息发送队列中,严格按照时间顺序,对消息发送队列的消息进行排队,并将处理后的消息应答顺序回写到消息接收队列。
业务执行中的消息接收线程负责从消息中间件接收消息,其中包括委托消息,查询消息和监控消息;在接收到这些消息之后,通过消息解析和封装模块的封装,将委托消息存放在数据存储管理模块中的委托消息接收队列中,将监控消息存放在数据存储管理模块中的监控消息接收队列,将查询消息存放在数据存储管理模块中的查询消息接收队列中。在该数据管理模块中还包括有监控消息发送队列和交易消息发送队列,监控消息发送队列存放待发送的监控应答消息,交易消息发送队列存放待发送的交易消息应答消息,包含回报、行情和查询结果。
业务执行中根据上述数据存储管理模块中存储的消息,通过撮合线程将委托消息进行解析,撮合并产生回报,日志的产生和更新;通过主控线程将整个云交易系统的开启和关闭以及处理整个云交易系统的监控请求;通过查询处理线程接收并解析查询信息,查询数据库,将结果封装成消息放入发送队列;通过行情发布线程向各个委托服务器发布行情信息,这样,用户就能接收到发布的行情信息。
在该云交易系统中采用内存数据日志文件硬盘数据库的多级存储模式,实时撮合过程主要访问内存数据,在向用户发送回报信息前,委托单和成交信息首先写入日志文件,因此,日志文件在一次委托或一次成交都将产生一条日志,日志文件内容和日志缓冲相对应,当日志积累到一定量或时间超时,将被转换成数据事务写入磁盘数据库,磁盘数据库保存所有数据和状态,事务回写线程逐条解析日志缓冲中的日志,一条或几条日志解析成磁盘数据库的事务,并把此事务提交到磁盘数据库中。内存数据和日志文件不参与信息的查询,系统出现崩溃时,可以从磁盘数据库和日志文件恢复内存数据。因此,多级数据缓冲包括内存数据,日志文件,磁盘数据库。通过采用多级数据缓冲,提高撮合的效率。
在上述业务执行模块中的撮合线程接收到关于委托消息是指令信息,由数据存储管理模块中内存数据的客户信息,商品信息、以及顺序表是数据信息,将指令信息与数据信息结合,完成交易过程。同理,由内存数据中的日志缓冲和行情信息通过Fix解析和封装模块发送至行情发布线程,才能将行情信息通过各委托服务器展示给用户。
实时撮合过程主要访问内存数据库,同时采用撮合队列组织结构和算法,以及数据库读写缓存机制的设计,其中,采用云变树作为内存数据库,该云变树吸收了AVL树和B树的优点,被定义为:一颗在一个节点内包含多个关键词的平衡二叉树,节点中的关键字按照从小到大,从左到右增序排列的方式,且节点有最小和最大关键字数量的限制。同时把撮合算法和数据库读写分离,以提高该云交易系统的性能。
然后对云交易系统中队列的拥塞控制进行详细描述。
具体地,在云交易系统中大量存在的各个消息或任务队列的主要职责是作为各个任务模块间的数据传递通道,同时最为数据的缓存,协调模块处理速度的不一致,通过添加反向的信号量,使任务的添加者在队列达到所设置的上限时,会被阻塞,从而避免队列元素的无限制增加,使用两端处理模块的速度得到协调一致,数据流在两处理端之间的拥塞得到很好的控制,也更好的保证了整个系统的稳定。
最后介绍云撮合运算与读写分离。如图2所示,在撮合服务器103中还包括读写模块1033,当需要读取交易的结果数据时,从存储模块进行读取;当需要写入数据时,从外接数据库中写入。
数据库读写是影响传统撮合算法效率的主要因素,将撮合算法和数据库读写完全分离可以极大地提高撮合效率,所有数据读取直接从内存中获取,而当需要写数据时,则直接产生一条事务日志信息吸入磁盘日志。数据库中的数据可以由一个单独的数据库写线程完成写入,撮合和数据库读写两者完全并行,不互相干涉。因此,通过将撮合服务器103中的读和写分离,从而提高撮合效率。
该云交易系统中将撮合和数据库回写分开,撮合过程只涉及内存数据的读写以及日志文件的顺序更新,大大提高了云交易系统撮合效能。
如图2所示,外接数据库104包括:日志文件数据库1041和磁盘数据库1042,日志文件数据库1041对每次交易的结果产生的日志信息进行记录,磁盘数据库1042保存整个交易的数据和状态。对每天进行的交易状况进行记录,使得该交易系统在断电状况下,或者系统崩溃时,内存数据丢失,这些交易数据能够从磁盘数据库中进行恢复。
如图1所示,该云交易系统中还包括监控服务器105,该监控服务器105连接至之间件服务器102,对中间件服务器接收到的交易信息以及对交易信息进行分布、传递的状况进行监控。通过实时监控云交易系统的交易状况,保障云交易系统的安全性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种云交易系统,其特征在于,包括:连接多个客户端的至少两个客户端服务器,中间件服务器,撮合服务器;
其中,在撮合服务器中包括处理模块和存储模块,在客户端服务器接收到交易信息时发送至中间件服务器,中间件服务器对接收到的交易信息进行分布并传递至执行撮合任务的撮合服务器,撮合服务器将交易信息存储至存储模块,根据撮合队列在处理模块中对交易信息进行处理,并将处理后的结果输出至外接数据库中。
2.根据权利要求1所述的云交易系统,其特征在于,所述交易信息具体包括委托信息、查询信息、行情发布请求信息以及监控信息。
3.根据权利要求1所述的云交易系统,其特征在于,外接数据库包括:日志文件数据库和磁盘数据库,日志文件数据库对每次交易的结果产生的日志信息进行记录,磁盘数据库保存整个交易的数据和状态。
4.根据权利要求1所述的云交易系统,其特征在于,还包括:监控服务器,连接中间件服务器,对中间件服务器接收到的交易信息以及对交易信息进行分布、传递的状况进行监控。
5.根据权利要求1所述的云交易系统,其特征在于,撮合服务器中的处理模块对存储在存储模块中的交易信息直接进行查找、插入和拥塞控制的处理。
6.根据权利要求5所述的云交易系统,其特征在于,处理模块对交易信息通过查找算法进行查找处理;处理模块对交易信息通过插入算法进行插入处理;处理模块对交易信息的数据流进行拥塞控制。
7.根据权利要求1所述的云交易系统,其特征在于,在撮合服务器中还包括读写模块,当需读取交易的结果数据时,从存储模块进行读取;当需写入数据时,从连接所述撮合服务器的外接数据库中写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410750723.3A CN104392377A (zh) | 2014-12-09 | 2014-12-09 | 一种云交易系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410750723.3A CN104392377A (zh) | 2014-12-09 | 2014-12-09 | 一种云交易系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104392377A true CN104392377A (zh) | 2015-03-04 |
Family
ID=52610275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410750723.3A Pending CN104392377A (zh) | 2014-12-09 | 2014-12-09 | 一种云交易系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104392377A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243002A (zh) * | 2015-08-28 | 2016-01-13 | 浪潮软件股份有限公司 | 一种消息中间件的监控方法和系统 |
CN106530080A (zh) * | 2015-09-14 | 2017-03-22 | 成都娇子意航星科技有限公司 | 一种基于队列动态变化的可休眠交易撮合方法 |
CN109710228A (zh) * | 2018-11-09 | 2019-05-03 | 安徽同徽信息技术有限公司 | 一种可应用于电商b2b交易平台的中间件引擎框架系统 |
CN110929380A (zh) * | 2019-10-25 | 2020-03-27 | 深圳市蘑菇财富技术有限公司 | 一种模拟炒股撮合系统和装置 |
CN111598694A (zh) * | 2020-05-12 | 2020-08-28 | 广东电力交易中心有限责任公司 | 电力交易方法、装置、计算机设备和存储介质 |
CN111708637A (zh) * | 2020-06-18 | 2020-09-25 | 深圳市金斧子网络科技有限公司 | 一种数据处理方法、装置及计算机可读介质 |
CN112199213A (zh) * | 2020-09-30 | 2021-01-08 | 中国工商银行股份有限公司 | 一种挂单交互数据的数据交互方法及服务器 |
CN113159948A (zh) * | 2016-01-24 | 2021-07-23 | 杭州复杂美科技有限公司 | 区块链撮合交易所 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007984A1 (en) * | 1999-12-14 | 2001-07-12 | Ahmed Fattah | Client-server computing software architecture |
CN1588921A (zh) * | 2004-09-17 | 2005-03-02 | 杭州恒生电子股份有限公司 | 基于多层架构的数据处理系统及数据处理方法 |
-
2014
- 2014-12-09 CN CN201410750723.3A patent/CN104392377A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007984A1 (en) * | 1999-12-14 | 2001-07-12 | Ahmed Fattah | Client-server computing software architecture |
CN1588921A (zh) * | 2004-09-17 | 2005-03-02 | 杭州恒生电子股份有限公司 | 基于多层架构的数据处理系统及数据处理方法 |
Non-Patent Citations (1)
Title |
---|
叶德伟: ""一个高性能多券种交易撮合系统设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243002A (zh) * | 2015-08-28 | 2016-01-13 | 浪潮软件股份有限公司 | 一种消息中间件的监控方法和系统 |
CN106530080A (zh) * | 2015-09-14 | 2017-03-22 | 成都娇子意航星科技有限公司 | 一种基于队列动态变化的可休眠交易撮合方法 |
CN106530080B (zh) * | 2015-09-14 | 2021-07-30 | 成都天誉立信科技有限公司 | 一种基于队列动态变化的可休眠交易撮合方法 |
CN113159948A (zh) * | 2016-01-24 | 2021-07-23 | 杭州复杂美科技有限公司 | 区块链撮合交易所 |
CN109710228A (zh) * | 2018-11-09 | 2019-05-03 | 安徽同徽信息技术有限公司 | 一种可应用于电商b2b交易平台的中间件引擎框架系统 |
CN109710228B (zh) * | 2018-11-09 | 2022-05-31 | 安徽同徽信息技术有限公司 | 一种可应用于电商b2b交易平台的中间件引擎框架系统 |
CN110929380A (zh) * | 2019-10-25 | 2020-03-27 | 深圳市蘑菇财富技术有限公司 | 一种模拟炒股撮合系统和装置 |
CN111598694A (zh) * | 2020-05-12 | 2020-08-28 | 广东电力交易中心有限责任公司 | 电力交易方法、装置、计算机设备和存储介质 |
CN111708637A (zh) * | 2020-06-18 | 2020-09-25 | 深圳市金斧子网络科技有限公司 | 一种数据处理方法、装置及计算机可读介质 |
CN112199213A (zh) * | 2020-09-30 | 2021-01-08 | 中国工商银行股份有限公司 | 一种挂单交互数据的数据交互方法及服务器 |
CN112199213B (zh) * | 2020-09-30 | 2024-02-20 | 中国工商银行股份有限公司 | 一种挂单交互数据的数据交互方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104392377A (zh) | 一种云交易系统 | |
US11093468B1 (en) | Advanced metadata management | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
US8108612B2 (en) | Location updates for a distributed data store | |
EP2288997B1 (en) | Distributed cache arrangement | |
US20170168751A1 (en) | Optimization for Real-Time, Parallel Execution of Models for Extracting High-Value Information from Data Streams | |
US20160140235A1 (en) | Real-time distributed in memory search architecture | |
US20130332612A1 (en) | Transmission of map/reduce data in a data center | |
CN105684020B (zh) | 硬件平台中的订单账簿管理设备 | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
CN105637524B (zh) | 硬件平台中的资产管理设备和方法 | |
CN101375241A (zh) | 集群文件系统中的有效数据管理 | |
US10158709B1 (en) | Identifying data store requests for asynchronous processing | |
US20170075990A1 (en) | Optimization for Real-Time, Parallel Execution of Models for Extracting High-Value Information from Data Streams | |
TWI745353B (zh) | 提供高效能無鎖可分級目標之方法與系統 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
US10102230B1 (en) | Rate-limiting secondary index creation for an online table | |
US9875270B1 (en) | Locking item ranges for creating a secondary index from an online table | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
US11709835B2 (en) | Re-ordered processing of read requests | |
WO2017092384A1 (zh) | 一种集群数据库分布式存储的方法和装置 | |
US20200192947A1 (en) | Distributed Indexing and Aggregation | |
CN109451069B (zh) | 基于分布式存储的网络数据文件库存储及查询方法 | |
CN103577469A (zh) | 数据库连接复用方法和装置 | |
Lee et al. | Hadoop Mapreduce performance enhancement using in-node combiners |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150304 |