Daniel Chaves
返回博客

Node.js

将 Node.js 与 TypeScript 扩展至 99.99% 的可用性

2025年12月09日3 分钟阅读

只要架构尊重其执行模型的特性,Node.js 就是应对高并发金融系统的一个可靠选择。

优雅关闭不是可选项

一次在未排空进行中请求的情况下就直接杀死进程的部署,是不一致性的隐性来源——尤其是在涉及总账写入的流程中。进程应当先停止接受新连接,等待进行中的操作完成,然后才真正关闭。

每一次外部调用都应配备熔断器

每一个外部依赖——SPI、身份核验服务商、征信机构——都需要一个带有明确降级策略的熔断器。正确的架构问题不是"如果这次调用失败了怎么办",而是"当这次调用失败时,系统应该做什么"。

用队列吸收流量高峰

在大多数金融平台的异步处理场景中,基于 Redis 的 BullMQ 已经足够:按任务 ID 实现幂等性、采用指数退避的重试机制,以及持续监控的死信队列。

从第一行代码开始就要具备可观测性

分布式链路追踪、按百分位(p50/p95/p99)统计的延迟指标,以及结构化日志,都不是在事故发生之后才补上的"锦上添花"——它们才是让生产环境问题能够在几分钟内(而非几小时)被诊断出来的关键。

高可用性是数十个微小而一致的决策共同作用的结果,而不是取决于某一次基础设施的选择。