互联网系统架构注意事项

系统设计方面注意列表

1、考虑网络带宽,接口设计入参出参字段要足够精简,一个多余字段都不要有,因为在系统峰值的时候,一个多余的字段经过千万上亿次的传输,就有可能对网络带宽造成不小的占用和开销;

2、系统架构一定要是面向互联网场景的,因为传统的单机服务所承受的请求量和互联网本身就不是一个量级的,如果使用不当,非常容易造成系统瞬间被击垮;

3、暴露给C端用户的接口,尽量做到幂等,因为在用户真实使用场景下,肯定会存在来来回回各类重复操作,一定要考虑到因网络延时、用户使用习惯等原因导致的重复请求;

4、为C端用户提供的服务和为企业内部后台管理提供的服务,数据库、系统部署一定要区分开来,因为在一些C端用户极端请求的情况下,有可能会将原本部署到一起后台管理服务,瞬间被前台服务拖垮,前台和后台的DB一定要做好解耦,可以通过MQ做好消息同步来解决数据同步问题;

5、针对主从复制的DB,为了保证读取的实时性,一定要基于业务特点做好主库读取的设计与配置,否则容易出现写入操作后立即读取数据查询不到刚刚操作的场景,这类问题往往会比较隐蔽,但造成的系统影响会非常大;

6、针对热点数据,要做到冷热数据隔离,保证热数据的操作不会影响到冷数据的正常访问,具体实现方式重点是做好缓存设计和基于数据的服务隔离机制;

7、服务降级主要包括:业务层降级[停止部署在同一服务器上的其他对当前业务无关紧要的服务,预留出更多的系统资源来处理可以带来业务价值的服务]和系统层降级[访问限流、写入限制、异步延迟持久化]

8、互联网是3分开发7分运维,所以任何新系统的搭建都要考虑到完备的运维支撑,运维主要分为:系统性能监控、用户体验监控和业务实时监控;

9、通过配置将页面组件静态化,以满足更高访问量的要求;

10、流量漏斗模型,在一级系统内形成主业务数据后,数据流转到二级系统,二级系统面对的峰值压力要小得多,二级系统多采用异步方式进行系统交互,对于超出处理能力的业务数据,异步机制削峰填谷,使系统得以在可控的压力下运行。

写在最后:人是受限于他的性格、兴趣、天分这些因素的,会不自觉地去靠近他更喜欢、更擅长的方向。


版权声明:本文为caryeko原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。