根据之前参与了一个国家级证券交易所新一代交易系统的经历,画了一个交易所基本架构图,如下:

名词解释:

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

股票证券交易系统架构分析与设计相关推荐

  1. 从零开始的跨平台渲染引擎(零)——基础架构分析与设计

    本文同时发布于本人的知乎专栏:https://zhuanlan.zhihu.com/p/403395505 前言 近几年我的工作主要集中在渲染引擎方面.随着工作时间的增长,接触和学习到的相关知识也逐渐 ...

  2. 新浪微博技术架构分析和设计

    第一部分:新浪微博技术架构 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA).高并 ...

  3. 如何做一个股票自动交易系统的步骤

    如何做一个股票自动交易系统的步骤 1. 数据获取 股票自动交易系统需要获取的数据非常丰富,涉及到市场价格.资金流向.基本面报告等多方面信息.这些数据对于制定交易策略和决策分析至关重要. 首先,对于股票 ...

  4. 软考·系统架构师论文——论基于架构的软件设计方法及应用

    文章目录 说明 摘要 过渡 项目背景 论点理论+实践 结尾 说明 1.[摘要 300~330字] ① 项目介绍:时间.项目名.项目主要功能简述.作者角色及工作内容 ② 项目技术简介:正文理论/分论点的 ...

  5. java交易撮合怎么实现_「康力电梯002367」“股票实时交易系统如何实现高并发撮合交易?最好有java架构“java 股票分析工具-京东方a小-seo金融...

    本文由京东方a小编创作于2020-09-10 21:11:04发布的来源于seo金融股票配资http://www.drill-pipe.com/gov/52833.html请您欣赏.seo金融网拥有众 ...

  6. 大数据时代证券核心交易系统架构演化

    大数据时代证券核心交易系统架构演化 推荐阅读: 世界的真实格局分析,地球人类社会底层运行原理 不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)企业IT技术架构规划方案论数字化转型--转什 ...

  7. 【新版】系统架构设计师 - 软件可靠性分析与设计

    个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 软件可靠性分析与设计 考点摘要 可靠性相关基本概念 软件可靠性分析 可靠性指标 串联系统(可靠性) 并联系统(可靠性) 混合系统(可靠性) ...

  8. java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)

    基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...

  9. SLG手游Java服务器的设计与开发——架构分析

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  10. 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计

    --后台回复"资料",领取特斯拉专利技术解析报告-- 文章转自:联合电子 本文将先重温下SOA架构的核心要素与优势,并重点讨论话题"面向服务架构(SOA)的汽车软件分析和 ...

最新文章

  1. 动态滴定预测算法研究
  2. Python error: Unable to find vcvarsall.bat
  3. OpenCV HDF读写属性
  4. linux远程计算,如何使用Linux应用服务器场的远程计算?
  5. spring-boot spring-security-oauth2
  6. 由scanf说起之1:scanf函数和回车、空格 及其返回值
  7. HTML a 标签的伪类
  8. paip.c++ gcc 不能捕获exception异常的解决
  9. 《可信计算的研究与发展》;C-Rank:一种Deep Web数据记录可信度评估方法
  10. iShot——Mac上功能最全的截图、录屏创造工具
  11. SnakeYaml 反序列化的一个小 trick
  12. java free hd 798,[https://www.798ziyuan.com/]Java入门级项目全程实录V2.0
  13. ATSC和DVB数字电视系统的比较
  14. PhoneGap——Accelerometer【加速计】
  15. 对《致加西亚的信》的异议
  16. laravel 查询语句
  17. 插空排序C语言(直接插入排序)
  18. Mysql并发读写解决方案分析--MVCC
  19. 软件开发过程与项目管理(10.软件项目人员与沟通计划)
  20. CANoe.DiVa 操作指南 - DTC自动化测试

热门文章

  1. This scheduler instance is still active but was recovered by another instance in the cluster.
  2. 矩阵可逆与行列式关系的一个直观推导
  3. mysql 多表查询
  4. Ubuntu系统报错
  5. WinCE 编程实验(第一章 引言)
  6. 珍大户《认知世界的经济学》学习笔记 -- 第17课 影响消费者的因素,更新时间2021年03月18日21:53:57
  7. 六度分离 (Floyd算法)
  8. h5在线聊天室(附源码)
  9. Linux CentOS 大数据集群的基础配置(3) CHD分布式环境搭建
  10. 如何以最快速度将Vue接入在线客服系统?