SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战

1,012 阅读9分钟

SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战

**下载地址:百度云盘
**

金融软件工程师一直是高薪争抢的稀缺人才,作为金融软件工程师,需要同时具备软件研发基础和金融业务知识。这门课对于想涉猎、了解以及从事金融行业的技术人员,非常有帮助。课程将带你总览金融行业的IT全景图,重点讲解证券交易中的撮合业务,并利用Vue+Spring Boot等技术栈,从搭建前后端分离的委托终端开始,带你从无到有开发一个高可用低延时的撮合交易系统。助力你成为为国家金融行业基础设施建设添砖加瓦的IT工程师

**
适合人群
有前后端基础知识,想投身证券金融行业做开发的同学
想进入Fintech行业或银行业,非银金融,互联网金融业的IT工程师
技术储备要求
具备Java、JavaScript基础
了解Spring Cloud和Vue的项目开发**

章节目录:

第1章 初识证券交易系统

本章主要介绍为何要带大家从零开始开发一套高可用的撮合交易实战课程,之后会聊聊这个行业的参与者们,介绍金融行业的系统有哪些部分组成,它们的架构是什么样子的。希望大家都能通过这门课程,学有所成,学有所归。

1-1 课前必读(不看会错过一个亿)

1-2 课程介绍及学习指导试看

1-3 证券金融行业试看

1-4 行业系统全景图

1-5 深入了解接入层-中台服务-交易系统-1

1-6 深入了解接入层-中台服务-交易系统-2

第2章 Vue委托终端开发准备

本章将带大家对委托终端的开发做足准备,包括框架选型(通过对不同时期的前端框架进行优劣比较,着重讲解Vue作为前端主框架的优势和Vue应用的思路和通过实例快速入门Electron两方面的内容。

2-1 Vue高性能的秘密

2-2 Vue-Cli搭建委托终端脚手架

2-3 Web跨界神器electron

第3章 订单出发-结合Element UI开发委托终端

本章将会带大家开发一个委托终端,委托终端主要使用Element UI作为组件库, 除了使用Element UI还会根据柜台的业务开发自定义的的组件。在开发的过程中着重展示一个结构清晰的代码结构应该怎么组织各个层级方法的调用关系。...

3-1 el-input入门--开发简洁登录页面试看

3-2 el-dropdown下拉菜单应用--创建主页面顶部导航

3-3 跨组件通信--创建主页面侧边导航栏

3-4 前端路由控制--密码设置页面开发【选学】

3-5 el-select的使用--银证转账页面开发【选学】

3-6 绕不开的表格和分页控件--资金持仓页面开发-1

3-7 绕不开的表格和分页控件--资金持仓页面开发-2

3-8 el-table回顾--实时委托和成交页面开发

3-9 el-autocomplete的使用--历史委托成交查询页面开发-1

3-10 el-autocomplete的使用--历史委托成交查询页面开发-2

3-11 el-autocomplete回顾-委托组件开发

3-12 自定义OrderBook订单簿组件和总结

第4章 Spring Cloud柜台开发准备

本章将带大家对柜台开发做足知识准备,包括了解柜台在交易撮合系统中会扮演一个什么样的角色,柜台的技术选型,如何使用SpringCloud搭建柜台开发的脚手架三方面的内容。

4-1 柜台业务

4-2 柜台开发技术选型

4-3 柜台脚手架搭建-1

4-4 柜台脚手架搭建-2

第5章 订单第一站-柜台

本章将带大家开发基于Spring Cloud的柜台,包括Token身份认证接口(使用Redis存储Token进行认证),查询类接口(使用数据库+缓存的方式提高系统负载能力),委托发送接口,自动提示框接口(使用倒排索引的方式提高检索效率)。...

5-1 登录接口-前端基础代码完善

5-2 登录接口-用Redis存储验证码

5-3 登录接口-验证码-1

5-4 登录接口-验证码-2

5-5 登录接口-验证码-3

5-6 登录接口-验证码-4

5-7 登录接口-身份校验-1

5-8 登录接口-身份校验-2

5-9 登录接口-身份校验-3

5-10 退出登录接口

5-11 密码修改接口

5-12 银证转账的秘密

5-13 委托成交持仓接口-1

5-14 委托成交持仓接口-2

5-15 委托成交持仓接口-3

5-16 委托成交持仓接口-4

5-17 委托发送-自动提示框接口-1

5-18 委托发送-自动提示框接口-2

5-19 保存委托和总结-1

5-20 保存委托和总结-2

5-21 保存委托和总结-3

第6章 Vertx网关开发准备

本章将带大家对网关的开发做足知识准备,包括了解网关在交易撮合系统中发挥的作用,在柜台和交易之间的隔离,协议转换的作用,了解TCP网络编程的重要技术点报文的编解码和重连的设置。

6-1 网关业务和实现框架

6-2 TCP服务端--编解码

6-3 TCP客户端--断线重连

第7章 订单第二站-网关

本章将带大家完成网关的开发,柜台使用Vertx的TCP模块作为开发框架,使用Vertx开发TCP的服务端和客户端,并会重点带大家分析TCP网络编程中如何使用自定义的缓存队列防止系统的阻塞。

7-1 网关(服务端)--数据编解码

7-2 网关(服务端)--连接处理器-1

7-3 网关(服务端)--连接处理器-2

7-4 柜台(客户端)--生成报文-1

7-5 柜台(客户端)--生成报文-2

7-6 柜台(客户端)--生成报文-3

7-7 柜台(客户端)--生成报文-4

7-8 柜台(客户端)--发送报文-1

7-9 柜台(客户端)--发送报文-2

7-10 代码联调和小结

第8章 Raft排队机开发准备

本章将带大家对排队机的开发做足知识准备,包括了解排队机在交易撮合系统中发挥的作用(主要用于订单的收集,定序和广播),了解排队机如何保证强一致性和高可用,并基于现有的SOFAJRaft框架完成一个高可用和强一致性的key-value数据库用来保存申报数据。 ...

8-1 排队机业务分析

8-2 高可用和一致性

8-3 raft based key-value db-1

8-4 raft based key-value db-2

第9章 订单第三站-排队机

本章将带大家开发一个基于SOFAJRaft 和Vertx的UDP模块作为开发框架的排队机,完成从网关收集订单,定序,存储等功能。为了保证业务上的公平性,排队机以固定的频率从网关收集订单,对所有申报进行定序,最后存放到具有强一致性和高可用特性的Key-Value数据库中。...

9-1 Key Value Store DB 初始化-1

9-2 Key Value Store DB 初始化-2

9-3 收集网关订单(排队机Consumer)-1

9-4 收集网关订单(排队机Consumer)-2

9-5 收集网关订单(网关Provider)

9-6 定序和小结

第10章 Disruptor撮合核心开发准备

本章将带大家对撮合核心开发做足知识准备,包括了解撮合核心的业务知识以及它在撮合交易系统中发挥的作用,TCP/UDP在撮合核心开发当中的优劣选择,Disruptor的入门和使用三方面的内容。

10-1 撮合核心业务

10-2 追求极致的Disruptor

10-3 Disruptor的使用入门-1

10-4 Disruptor的使用入门-2

第11章 订单终点站-撮合核心

本章将带大家开发一个撮合核心,撮合核心主要使用Disruptor,eclipse collections作为开发框架,完成使用NACK策略接收排队机的组播数据,使用自定义的订单簿数据结构对委托进行撮合和存储,对申报的结果进行广播等功能,本章的难点在于如何规避UDP丢包和乱序的问题,如何设计一个较为高效的订单簿数据结构。...

11-1 UDP NACK 广播与接收-1

11-2 UDP NACK 广播与接收-2

11-3 UDP NACK 广播与接收-3

11-4 UDP NACK 广播与接收-4

11-5 UDP NACK 广播与接收-5

11-6 前置风控处理器-1

11-7 前置风控处理器-2

11-8 撮合处理器-OrderBucket-1

11-9 撮合处理器-OrderBucket-2

11-10 撮合处理器-OrderBook-1

11-11 撮合处理器-OrderBook-2

11-12 撮合处理器-OrderBook-3

11-13 行情发布处理器-1

11-14 行情发布处理器-2

11-15 组装Handlers和小结

第12章 行情发送、订阅和和课程总结

本章先带大家了解柜台如何通过总线接收撮合核心发布的行情和撮合数据,委托终端如何从柜台订阅委托和成交的变动信息,如何请求股票的订单簿数据,最后对整个课程业务、技术做全面总结。

12-1 支线--maven打包

12-2 总线数据处理器

12-3 行情处理器

12-4 撮合数据处理器-1

12-5 撮合数据处理器-2

12-6 服务端(柜台)的websocket推送

12-7 客户端(委托终端)的websocket订阅-1

12-8 客户端(委托终端)的websocket订阅-2

12-9 课程全面总结

本课程已完结