股票证券交易系统架构分析与设计
根据之前参与了一个国家级证券交易所新一代交易系统的经历,画了一个交易所基本架构图,如下:
名词解释:
0. STEP协议是什么?
STEP: Securities Trading ExchangeProtocol,是中国金融行业数据通信标准JR/T0022-2004,目前被深圳交易所采用,作为LeveII数据向信息服务商分发的数据的标准协议。
其实,这个交易所支持多种证券交易协议,包括:FIX,FAST协议。
1. FIX基本介绍
FIX--The Financial Information eXchange ("FIX") Protocol,金融信息交换协议.是针对交易相关消息的规范。在银行、券商、交易所、投资机构、相关业间应用非常广泛。这些市场参与者基于统一的语言进行自动交易。
fix是工业驱动的消息标准,它是开放和自由的,但不是一套软件。而是一个规范,各厂商基于规范开发相应的软件。作为在交易通信中的主导协议,fix与其它的订单处理系统、交易系统融合。fix协议有两层:会话层和应用层。会话层主要是负责传输数据,而应用层则是处理相关的业务数据。
2.FAST协议
FAST(FIX Adapted for Streaming) ,其核心是一个压缩算法,将按照fix规范定义的数据经过压缩以后,可以在很大程度伤降低发送、接收双方的带宽。
交易所对稳定性和性能,有极高的要求,这就对架构设计能力有很高的考验,有幸参与这一个有意思的过程,其实,里面的架构师都是来自微软,ebay,IBM的一线架构师,其中Ebay的架构给了我们不少启发。
首先说说我们的最终达到的成果吧:
目前可容纳的投资者账户数超3亿个,证券数量从原有系统的5千只可扩大至5万只,容量扩大了10倍。并且具备每秒30万笔、每日超4亿笔委托的处理能力,是原有系统的3倍。新一代交易系统将平均委托处理时延约为1.1毫秒,仅为原有系统的百分之一,而五年总体成本仅是原有系统的1/3。
这个架构核心思想也是借鉴EBAY架构师Dan Pritchett源于对大规模分布式系统的实践总结,在ACM上发表文章提出BASE理论,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。
但证券交易系统对数据一致性有更高要求,但交易所不缺钱,很多高性能,高可用都是用很贵的硬件堆起来的。
BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。
基本可用(Basically Available)
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
软状态( Soft State)
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。
最终一致性( Eventual Consistency)
最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
ACID和BASE的区别与联系
ACID是传统数据库常用的设计理念,追求强一致性模型。BASE支持的是大型分布式系统,提出通过牺牲强一致性获得高可用性。
ACID和BASE代表了两种截然相反的设计哲学
在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此ACID和BASE又会结合使用。
参考资料
CAP和BASE理论
转载于:https://www.cnblogs.com/gyc567/p/10953883.html
股票证券交易系统架构分析与设计相关推荐
- 从零开始的跨平台渲染引擎(零)——基础架构分析与设计
本文同时发布于本人的知乎专栏:https://zhuanlan.zhihu.com/p/403395505 前言 近几年我的工作主要集中在渲染引擎方面.随着工作时间的增长,接触和学习到的相关知识也逐渐 ...
- 新浪微博技术架构分析和设计
第一部分:新浪微博技术架构 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA).高并 ...
- 如何做一个股票自动交易系统的步骤
如何做一个股票自动交易系统的步骤 1. 数据获取 股票自动交易系统需要获取的数据非常丰富,涉及到市场价格.资金流向.基本面报告等多方面信息.这些数据对于制定交易策略和决策分析至关重要. 首先,对于股票 ...
- 软考·系统架构师论文——论基于架构的软件设计方法及应用
文章目录 说明 摘要 过渡 项目背景 论点理论+实践 结尾 说明 1.[摘要 300~330字] ① 项目介绍:时间.项目名.项目主要功能简述.作者角色及工作内容 ② 项目技术简介:正文理论/分论点的 ...
- java交易撮合怎么实现_「康力电梯002367」“股票实时交易系统如何实现高并发撮合交易?最好有java架构“java 股票分析工具-京东方a小-seo金融...
本文由京东方a小编创作于2020-09-10 21:11:04发布的来源于seo金融股票配资http://www.drill-pipe.com/gov/52833.html请您欣赏.seo金融网拥有众 ...
- 大数据时代证券核心交易系统架构演化
大数据时代证券核心交易系统架构演化 推荐阅读: 世界的真实格局分析,地球人类社会底层运行原理 不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)企业IT技术架构规划方案论数字化转型--转什 ...
- 【新版】系统架构设计师 - 软件可靠性分析与设计
个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 软件可靠性分析与设计 考点摘要 可靠性相关基本概念 软件可靠性分析 可靠性指标 串联系统(可靠性) 并联系统(可靠性) 混合系统(可靠性) ...
- java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)
基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...
- SLG手游Java服务器的设计与开发——架构分析
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计
--后台回复"资料",领取特斯拉专利技术解析报告-- 文章转自:联合电子 本文将先重温下SOA架构的核心要素与优势,并重点讨论话题"面向服务架构(SOA)的汽车软件分析和 ...
最新文章
- 动态滴定预测算法研究
- Python error: Unable to find vcvarsall.bat
- OpenCV HDF读写属性
- linux远程计算,如何使用Linux应用服务器场的远程计算?
- spring-boot spring-security-oauth2
- 由scanf说起之1:scanf函数和回车、空格 及其返回值
- HTML a 标签的伪类
- paip.c++ gcc 不能捕获exception异常的解决
- 《可信计算的研究与发展》;C-Rank:一种Deep Web数据记录可信度评估方法
- iShot——Mac上功能最全的截图、录屏创造工具
- SnakeYaml 反序列化的一个小 trick
- java free hd 798,[https://www.798ziyuan.com/]Java入门级项目全程实录V2.0
- ATSC和DVB数字电视系统的比较
- PhoneGap——Accelerometer【加速计】
- 对《致加西亚的信》的异议
- laravel 查询语句
- 插空排序C语言(直接插入排序)
- Mysql并发读写解决方案分析--MVCC
- 软件开发过程与项目管理(10.软件项目人员与沟通计划)
- CANoe.DiVa 操作指南 - DTC自动化测试
热门文章
- This scheduler instance is still active but was recovered by another instance in the cluster.
- 矩阵可逆与行列式关系的一个直观推导
- mysql 多表查询
- Ubuntu系统报错
- WinCE 编程实验(第一章 引言)
- 珍大户《认知世界的经济学》学习笔记 -- 第17课 影响消费者的因素,更新时间2021年03月18日21:53:57
- 六度分离 (Floyd算法)
- h5在线聊天室(附源码)
- Linux CentOS 大数据集群的基础配置(3) CHD分布式环境搭建
- 如何以最快速度将Vue接入在线客服系统?