|怎么做一个不会崩溃的一码通系统

|怎么做一个不会崩溃的一码通系统

最近各地健康码、一码通系统接连传出崩溃、宕机的消息 。 因为这些软件系统和疫情防控工作紧密相关 , 所以各大媒体也都非常重视 , 纷纷大力报道 , 引发了社会的高度关注 。
作为一名软件工程技术人员 , 我想从技术的角度发表一下我对这件事的看法 。 观点不一定对 , 还请大家批评指正 。
软件系统崩溃 , 大家的第一反应就是开发人员技术不过关导致的 。 其实 , 系统崩溃的原因有很多 , 并不完全是技术问题 。 比如:开发周期太短、紧急需求变更、项目人员更迭、成本控制、网络攻击等等 , 都有可能导致系统的崩溃 。
下面我来说一说 , 如何做一个不崩溃的健康码系统 。 要做一个高可用的系统通常需要考虑五个方面的问题:
1. 负载均衡 。 一般这种系统都要采用分布式部署 , 每块业务都有一组或N组服务器进行作业 。 所以需要建立负载均衡机制 , 包括DNS负载均衡、F5负载均衡、反向代理负载均衡等等 。
2. 缓存机制 。 为了降低业务服务器和数据库服务器的工作量 , 我们通常都会采用各种缓存机制降低服务器的请求量 。 包括采用CDN静态文件缓存、Redis数据缓存等 , 要注意缓存穿透和缓存雪崩问题 。
3. 性能优化 。 为了让系统不崩溃 , 需要将每次请求的响应时间尽量缩短 , 有时候响应速度慢个几毫秒就会导致请求积压 , 系统崩溃 。 主要包括系统业务逻辑优化 , 数据库优化等等 。
4. 过载保护 。 不管上面几项工作做得多好 , 还是无法避免超过设计容量的请求进来 。 所以我们的系统需要有过载保护机制 , 可以通过防火墙策略等方法实现 。
5. 体验优化 。 当系统变慢或者异常时 , 需要安抚用户的情绪 , 需要在用户端进行一些体验优化设计 。 比如增加用户端数据缓存减少对服务器的请求 , 用户极速操作的时候不提交请求 , 友好地提示用户稍后再试等等 。
做好上面这五个方面 , 基本上就可以做出一个不崩溃的软件系统了 。 但是需要注意的是 , 在实际项目工作中 , 通常都会采用最小成本法来解决工程问题 。 毕竟成本越低 , 利润才能越高 。 所以 , 需要经验丰富的系统架构师来设计整个软、硬件系统 , 在控制成本和满足需求之间进行平衡 。
大家还有什么观点和看法 , 可以在评论区留言探讨 。
【|怎么做一个不会崩溃的一码通系统】