# 性能与扩展：13 个问题 | Muhammad Shahid

URL: https://shahid09.netlify.app/zh/faq/performance-scaling/
Author: Muhammad Shahid, Senior AI Software Engineer & Backend Developer (https://shahid09.netlify.app/)

## 你能修复慢 API 吗？

能。我会分析慢查询，再用索引、聚合管道、缓存和分页来修复。在 Dlux Soft，这样把 API 平均响应时间缩短了约 60%。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#can-you-fix-a-slow-api

## 你是如何把 CV Maker 从 20 万用户扩展到 100 万用户的？

在 Node.js 后端上使用 MongoDB 索引、聚合管道、响应缓存和分页，同时保持发布稳定、没有停机。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#how-did-you-scale-cv-maker-from-200k-to-1m-users

## 你如何解决 MongoDB CPU 占用过高？

找出慢查询，添加合适的复合索引，重建访问模式，并把读取频繁的接口缓存到 Redis。我就是这样把 DOP 的数据库负载降回安全范围的。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#how-do-you-fix-high-mongodb-cpu-usage

## 你为 DOP 开发了什么？

DOP（Data Ownership Protocol，dop.org）是一个注重隐私的区块链协议，借助零知识选择性披露，让用户自己选择公开哪些链上数据。我开发了它的后端服务：API、数据层和区块链连接。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#what-did-you-build-for-dop

## 大规模下 API 超时通常是什么原因？

根据我的经验，通常是读取频繁的查询缺少合适的索引，也没有缓存层。在 DOP，正是修复了这一点，才消除了超时并在高峰负载下稳定了响应时间。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#what-usually-causes-api-timeouts-at-scale

## 你能在不重写的情况下扩展后端吗？

通常可以。慢查询、超时、CPU 100% 和随机登出几乎都能在原有代码上修复，我在线上产品中就是这样处理的。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#can-you-scale-a-backend-without-rewriting-it

## RPC 节点故障时，你如何保证区块链交易不中断？

在 DOP，我接入了 5 家 RPC 服务商，采用随机选择和自动故障转移，节点宕机也不会影响用户。单个节点故障导致的交易中断降到了零。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#how-do-you-keep-blockchain-transactions-working-when-an-rpc-node-fails

## 你能解决 CPU 和内存瓶颈吗？

能。查询与聚合调优、CPU 和内存瓶颈以及会话问题，是我在线上产品中修复最多的问题。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#can-you-fix-cpu-and-memory-bottlenecks

## 你能做到零停机发布吗？

能。在把 CV Maker 后端从 20 万扩展到 100 多万用户的过程中，每次发布都稳定且没有停机。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#do-you-do-zero-downtime-releases

## 你能挽救在生产环境中频繁出问题的产品吗？

能。我在拥有数百万用户的线上产品中修复过慢查询、超时、CPU 100% 和随机登出，之后还加入了监控，防止问题悄悄复发。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#can-you-rescue-a-product-that-keeps-breaking-in-production

## 你能把 Node.js 和 MongoDB 系统扩展到数百万用户吗？

能，我在生产环境中做到过：DOP 用户超过 3 亿，TheCryptoBasic 服务 200 多万读者，我还把 CV Maker 从 20 万用户扩展到 100 多万，全部基于 Node.js 和 MongoDB 后端。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#can-you-scale-node-js-and-mongodb-systems-to-millions-of-users

## 你如何设计高性能的 REST API？

带索引的查询、为读取频繁的路由加 Redis 缓存、分页、精简的响应、请求校验，并把耗时工作放到后台任务。在 Dlux Soft，这样把 API 平均响应时间缩短了约 60%。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#how-do-you-design-high-performance-rest-apis

## 你做系统设计吗？

做。我设计系统的服务、数据模型、缓存、队列和故障转移，并规划它如何扩展。在 DOP，这包括为 3 亿多用户设计的 Redis 缓存、新索引和多 RPC 服务商故障转移。

Link: https://shahid09.netlify.app/zh/faq/performance-scaling/#do-you-do-system-design
