1、事件驱动型微服务架构的实践华泰证券/毕成功删除水印WondersharePDFelement背景简介哈尔滨工业大学07级计算机硕士。在十余年的职业生涯中,致力于软件开发和团队管理工作,涉足过搜索、手游、O2O、电商、金融等多种领域,并有过多次创业经历。2021年加入华泰证券,带领FICC平台架构团队,负责大象交易系统的平台架构工作。目前主要着力于建设具有“超低延时、内存计算、事件驱动”的金融型架构体系。毕成功大象交易平台大象交易平台是FICC多资产实时定价、做市和风险对冲平台。在量化做市交易领域以“极速交易极速交易”、“实时风控实时风控”、“策略驱动策略驱动”和和“投资管理投资管理”四项核心能
2、力为服务底座,提供了覆盖境内外、跨市场、全资产交易品种的低延时极速交易与风控能力、全自动量化定价与策略做市报价能力以及实时全景风险指标监控与风险对冲能力。大象平台建设了“交易员工作站交易员工作站”、“风险与投资管理中心风险与投资管理中心”和和“策略研发工作策略研发工作室室”三大应用终端,为相关部门固定收益做市交易各岗位用户提供专业用户体验。平台支持公司现券、IRS、国债期货、债券通等做市业务快速发展,做市报价数量、质量及市场大幅波动时风险控制能力都极大增强,综合报价能力位居同业前列。近期荣获中国人民银行颁发的金融科技发展一等奖 2023年斩获中国外汇交易中心“年度市场影响力机构”和“市场创新业
3、务机构”等奖项 荣获三家政策性银行颁发的“优秀做市商”.共计14个奖项荣誉荣誉CONTENTS01经典微服务架构的问题The problems of traditional MS-Arch02事件驱动型架构的方案T h ed e s i g n so fE D A03事件驱动型架构的问题T h ep r o b l e m so fE D A04总 结 和 推 荐 建 议S u m m a r ya n dr e c o m m a n d s01 经典微服务架构的问题这真的是银弹吗?耦合问题p上下游服务强依赖 服务的稳定性差 要降级处理地方的太多p调用链长 稳定性进一步下降 接口性能下降p数
4、据库依然是中心节点 数据库的稳定性影响大 数据库是整体瓶颈,难扩展接膨胀问题数据操作的场景多调用关系复杂不同场景技术选型的权衡VS互联网场景高吞吐快速开发易扩容.金融交易场景低延迟高稳定性复杂业务的易维护.02 事件驱动型架构的案模块化和简单性是软件工程的基石。蒂姆伯纳斯李EDA主要特征本质上是对数据依赖的解耦!服务之间的关系发生变更p转变一:异步化 无需同步等待 支持一对多p转变二:数据自治 自主订阅,本地保存 本地数据调用DB依赖接口膨胀避免了上下游依赖调用链长避免了事件的类型与特征DataQueryCommand有状态变更无状态变更Data驱动Request驱动tradeorder()g
5、etOrders()不用RPC?数据:存哪里天然的CQRS(Command Query Responsibility Segregation)命令对数据的影响p模式一:本地缓存l 数据读取加速l 避免对上游的依赖p模式三:可选快照文件l 数据获取加速p模式二:旁路集中存储l 获取未缓存的数据l 内存状态的恢复数据:存储结构流水物化(materialization)Data1(v1)Data2(v1)Data3(v1)Data1(v2)Data2(v2)Data1(v3)Data1(v1)Data2(v1)Data3(v1)Data1(v2)Data2(v1)Data3(v1)Data1(v2)
6、Data2(v2)Data3(v1)Data1(v2)Data2(v2)Data3(v1)Data4(v1)Data1Data4Data2用于历史回放用于查询或快速恢复Data1Data2Data1append-only modeupsert mode数据:怎么获取原则:用统一的方式获取上游数据,不论是query还是sub(非OLAP场景)推论一:数据获取都采用SQL描述l 总线的订阅分发模式不支持SQL,需要改造l query就是对历史数据的sub推论二:sub和query用同一个SQLl 但query历史数据比