Su的技术博客

  • 首页
  • 原创
  • 视频
  • Java
  • MySQL
  • DDD
  • 事故复盘
  • 架构方案
  • AI
  • Other
  • 工具
    • AI工具集
    • 工具清单
    • JSON在线格式化
    • JSON在线比较
    • SQL在线格式化
  • 打赏
  • 关于
路很长,又很短
  1. 首页
  2. 事故复盘
  3. 正文
                           

【事故复盘】富途证券关于2021.10.9凌晨交易中断事故的道歉和回复

2023-05-02 1679点热度 0人点赞 0条评论

10月9日凌晨1点26分,事故发生后不少客户at我,有批评、有建议、有鼓励,由于9号早晨还要去出差,会有几个小时在飞机上,就没来得及一一回复。不论如何都要谢谢你们,因为你们,我才觉得富途所作的事情格外有意义,我们可以去努力和改善的地方还有非常多。

首先我要向大家郑重及诚恳地道歉:真的很对不起,让你们失望了,我们虚心接受所有的批评和建议,并会立即着手相应的改进。

虽然几次影响大、耗时长的事故都与不可控的外部依赖有着直接的关系,但给到客户的感受都是一样的,那就是富途的服务不可用了。因此,我们责无旁贷,也不会把应该我们解决的问题推到外部,只会看在我们可控的范围内如何可以做得更好。

1、末日期权价值归零的补偿问题。

有购买了末日期权因故障未能及时平仓导致价值归零的客户在问是否会补偿,从周末开始针对这类客户我们的客服已经在逐一联系,会根据具体的情况沟通对应的补偿方案。

2、有关系统容灾的问题。

首先可以确定的是,富途的系统是有作容灾设计的,从行情到交易,从服务器到交易网关到网络传输都有作双路或多路的冗余设计。不同的子系统的设计会有所不同。

富途的客户中不乏技术达人,这次事故后,不少有技术背景的客户针对系统的容灾给了各种的建议,尤其是有关多区域多IDC的容灾建议。在此表示感谢!

以行情为例,单向传输为主、对时延的敏感度也不是那么高,我们很早就作了多区域多IDC的容灾设计;尤其像美股行情,涉及到越洋传输,为避免中断,我们选择了全球顶级的两家行情供应商为我们分别提供行情源,分别从美国、香港多地多点接入,当这些都不可用时,我们还保留了富途美国IDC直传的能力。不考虑其他的冗余设计,光是因为行情源的冗余,一年增加的成本过千万港元。

交易系统比较特殊,对时延有着非常高的要求。所有的多路冗余热备系统都存在时延大小和数据一致性的冲突;物理位置越分散,比如跨IDC、跨区域,为确保数据一致性,时延就会越大。跨IDC、跨区域的数据一致性的时延问题好解决吗?不好解决。因为在我们生活的这个宇宙,光速或电子流动的速度每秒钟30万公里就已经是极限,这也意味着在理论状态下物理位置每间隔300公里的网络传输就会存在1毫秒的时延;这还仅仅是在理论状态下,实际上如果加上光电转换、加上路由跳转,300公里的传输能作到不超过5毫秒已是优秀。那么5毫秒算长吗?5毫秒从一般的认知来看也不算长,但对于数据一致性来说就算很长了,光一个网络传输一来一回就是10毫秒;就具体的交易场景来说,你可能啥也没作,只是因为热备的数据一致性的需要,网络传输延时加上各类写操作的延时和同步确认的延时,你的订单还没有提交出去可能就消耗掉了几十毫秒,且这还只是理论值,实际上有机会更多。

基于上边的描述,在实时热备的多路冗余交易系统的设计上会面临着两种选择。一是较差的交易性能更大的订单延时但更好容灾能力的跨IDC多路冗余方案,二是更好的交易性能较小的订单提交延时单一IDC的多路冗余方案,但IDC本身会成为故障的单点。有客户问,你们是不是不愿意投入啊,才会有这个事故发生;看到这里,你会发现其实不是投入的问题,是选择的问题。

考虑到IDC的建设标准,IDC的大级别事故是罕见的,尤其是在电力故障方面。经过综合推演之后,我们选择了更好性能的方案二作为我们的系统设计,也因此留下了IDC的单点故障隐患。这次事故恰恰就是IDC出了问题,而且是最不应该出现问题的电力系统出了问题。供电网络一个几秒钟的电压抖动,IDC一堆网络IT设备跟着关机或重启,实在是难以想象,说好的不间断电源和柴油发电机去哪了?不间断电源和柴油发电机竟然都没能发挥应有的作用,要知道电力保障是一个IDC之所以是IDC的最基础能力。另一方面也暴露了我们的系统在这种情况下的脆弱。

这次事故的恢复时间以小时计,给我们的教训和启发都非常大。两害相权取其轻,相对于小时级的故障时间,假如我们可以接受一个分钟级的故障时间,那么在方案二的基础上是不是可以有一个兼顾交易性能低订单延时又支持跨IDC的准热备方案呢?答案是有的,接下来我们就会对这里作进一步的研究和推进。

3、有关资产显示的问题。

这次事故让我看到了我们在产品设计上的一些欠周到。事故发生时,有客户发现自己的持仓和资产数据都没了,这让人感到非常惊悚,马上就有人在牛牛圈上问“富途是不是卷款跑路了?”。实际情况是因为故障导致了牛牛app跟后台数据的断开;既然只是断开,那前端app的表现为何是作清空的处理?显然以最后可以正常显示的数据快照继续展示会是更好的实现方案;虽然数据不会作实时更新了,但给到人的心理感觉会安定很多。在这里我要给受到惊吓的客户们道歉,接下来也会在app相关的表现上作出改进。

以上是我想要重点回复的三个问题。

这次事故值得我和团队们总结和反思地方非常多,教训和警示也都非常深刻。我们不会去做无意义的辩解,立足当下作好改进会来得更重要;我们也从未因为富途有了一点体量和成绩就感到自大和自满,只期望通过我们的持续努力不辜负您们的信任。

再次道歉并感谢!

叶子哥
2021/10/11

 

更多文章:

  1. 历经 16 年猪八戒网如何成功实现双活流量架构
  2. iOS请求访问文件网关服务图片接口异常问题的解决
  3. tomcat应用服务启不来,没有报错日志?不可能!
  4. MySQL8.0驱动升级事故——之三
  5. 研发日常踩坑-Mysql分页数据重复
  6. 从滴滴的故障我们能学到什么
  7. IT事故“破案”大法
  8. 线上问题处理案例1:出乎意料的数据库连接池
  9. 一次访问Redis延时高问题排查与总结
  10. Vim 一下日志文件,Java 进程没了?
标签: 事故复盘 IDC 单点 富途 系统容灾 网关
最后更新:2023-05-02

秋天0261

关注Java领域,后端开发、Netty、Zookeeper、Kafka、ES、分布式、微服务、架构等。分享技术干货,架构设计,实战经验等。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

广告
最新 热点 推荐
最新 热点 推荐
微服务架构:必懂的6大性能维度 Anthropic Code with Claude 开发者大会:开启 AI Agent 新时代 视频笔记-微服务架构P4:必懂5种设计模式 视频笔记:微服务架构P4 设计模式:每服务数据库、API 网关和事件驱动架构 干货 | 论Elasticsearch数据建模的重要性 马蜂窝消息总线——面向业务的消息服务设计 基于 MySQL Binlog 实现可配置的异构数据同步 视频笔记:Google发布Agent2Agent协议
视频笔记:微服务架构P4 设计模式:每服务数据库、API 网关和事件驱动架构干货 | 论Elasticsearch数据建模的重要性视频笔记-微服务架构P4:必懂5种设计模式Anthropic Code with Claude 开发者大会:开启 AI Agent 新时代微服务架构:必懂的6大性能维度
分布式唯一 ID 生成方案浅谈 生产环境JVM崩溃问题排查解决 干货 | Elasticsearch 数据建模指南 6种限流实现,附代码![通俗易懂] 记一次堆内外内存问题的排查和优化 Redis的BigKey(大key)、HotKey(热key)又引发了线上事故 Spring事务的七种传播特性 系统设计 | 哪些技术标准可以帮助系统设计?

CRUD (1) Event Sourcing (1) graphql (1) id (1) NoSQL (1) quarkus (1) rest (1) RocketMQ (2) Spring Boot (1) zk (1) zookeeper (1) 上下文 (1) 事务消息 (1) 二级缓存 (1) 值对象 (1) 关系数据库 (1) 分布式缓存 (1) 原子性 (1) 唯一ID (1) 商品 (1) 多对多 (1) 子域 (1) 字符集 (1) 客户端心跳 (1) 幂等 (2) 干货 (1) 并发 (1) 应用场景 (1) 应用架构图 (1) 康威定律 (2) 异步复制 (1) 微服务架构 (3) 总体方案 (1) 技术方案 (2) 技术架构 (2) 技术架构图 (1) 技能 (1) 持续集成 (1) 支撑域 (1) 故障恢复 (1) 数据架构图 (1) 方案选型 (1) 日记 (1) 服务发现 (1) 服务治理 (1) 服务注册 (2) 机房 (1) 核心域 (1) 泄漏 (1) 洋葱架构 (1) 消息队列 (5) 源码剖析 (1) 灰度发布 (1) 熔断 (1) 生态 (1) 画图工具 (1) 研发团队 (1) 线程 (2) 组织架构 (1) 缓存架构 (1) 编码 (1) 视频 (20) 读写分离 (1) 贵州 (1) 软件设计 (1) 迁移 (1) 通用域 (1) 集群化 (1) 雪花算法 (1) 顺序消息 (1)

推荐链接🔗
  • AI工具集
  • 工具箱🛠️

COPYRIGHT © 2014-2025 verysu.com . ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备15033072号-2