欢迎来到天天文库
浏览记录
ID:15356429
大小:2.02 MB
页数:35页
时间:2018-08-02
《leon wang-金融系统架构与设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实时高可用金融交易系统架构与设计广发证券的去IOE实践传统交易系统•系统最关键:数据库、消息中间件(IOE)消息中间件•消息的发送者与接收者解耦、灵活部署应用中间件•处理请求、保持状态、报盘、反馈结果•持久到中心数据库•并发通过锁同步或者数据库同步•冷备需要解决的问题•去中心化•实时•高可用•敏捷创新交易系统•采用互联网开源技术与理念•多播消息总线、无锁线程间高速通信、EDA•EventSourcing架构,CQRS模式•基于Java的应用框架、模块化、自动化构建、测试、部署互联网技术互联网技术的冲击AvailabilityCAAP•云计算、云存储XConsitencyParti
2、tionCP•弱一致性,高可用性(AP)•强一致性,分布式事务,同步复制(CP)互联网技术的冲击•保证C的前提下,尽量提高A•超高速通信•网络(PGM多播)•线程间(LMAXDisruptor)•本地计算,增量计算(EDA)创新交易系统应用可靠性•取决于排队机•持久化(Persistence):EventSourcing,WAL•复制(Replication):排队机同步复制•冗余(Failover):应用中间件多活消息总线多播(Multicast)•出口带宽O(1)•发送端与接收端解耦总线协议•每一个可靠多播通道具有一个唯一的Subject•每一个通道的消息具有一个序号,接收端
3、根据序号顺序处理消息•多个服务可以产生同一个Subject的消息•相同序号的消息必须一样可靠传输•为了保证可靠传输,需要接收端确认消息(ACK)•基于PositiveACK(TCP)•基于NegativeACK(PGM)•多播采用NegativeACK的原因•接收端的ACK可能占满发送端的入口带宽•发送端耦合接收端,不好Scale拥塞控制•发送端的发送速度不能超过接收端的接收速度•基于ACK的拥塞控制(TCP、PGMCC、TFMCC、ORMCC)•基于NACK的拥塞控制•局域网的多播拥塞控制基于NACK•定位最慢接收端算法复杂•局域网丢包少,不会出现由于NACK导致发送速度逼近0
4、的问题应用框架•模块化•事件驱动、事件流•并发模型•应用协议模块化•库一级的模块化•组件一级的模块化•服务一级的模块化事件流•高度可配置•处理器与RingBuffer多对多的关系示例:主排队机事件流重演消息流示例:消息流并发模型•EDA、无共享状态•无锁•确定性•无需事务Amdahl’slaw线程间通信•基于Disruptor的消息分派与流水处理应用协议•以流的方式操作数据•无需动态分配内存,也就不需要垃圾回收•不产生数据的拷贝(ZeroCopy)敏捷•开发:模块化、重用•自动构建(Maven)•自动化测试(BDD)•自动化部署与监控(Docker、Puppet、JMX)•运营性
5、能——吞吐•轻松达到300kmps性能——延时设计理念•TheReactiveManifestoReactivetoEvents•异步•事件一等公民•对事件建模、对事件处理器建模、对事件流程建模ReactivetoScale•Locationunaware•Scaleup•ScaleoutReactivetoResilience•反脆弱•错误也是一种事件•Supervisor:监控,日志,动态路由,大数据ReactivetoUser•用户体验•实时Q&A•个人博客:liebo.github.io•http://it.gf.com.cn
此文档下载收益归作者所有