一,可(异地)部署和就近路由接入,破除单点故障;
(可分布,可调度的原则)
二,数据上报和监控平台;
(用户行为数据,系统性能监控数据,系统异常和业务相关数据等的上报)
三,数据分级存储原则:单内存cache存储,内存cache+异步更新,内存cache+同步更新;
(从三个纬度分析用户行为模型,决定相关数据的存储策略:1,能忍受用户数据的丢失吗?2,能忍受数据的非及时性吗?
3,数据的读写比例分布如何?)
四,动静分离原则;
(能静态化尽量静态化,在代码和进程部署上,在DNS层上做好动静分离的系统设计准备)
五,轻重分离原则;
(保持接入和业务处理的分离,接入尽量轻量化,使得系统具有很好的吞吐量,处理尽量异步化,使得可以平滑扩展)
六,破除服务依赖原则:同一IDC的其他服务对系统的影响,第三方调用系统接口的隔离和过载保护,依赖第三方服务的
监控和安全保护原则等。
七,柔性可用原则;
(处理好异常情况下的灰度体验,区分好关键处理路径和非关键路径,而系统设计要尽量把关键路径转换成非关键路径)
八,能异步的尽量异步原则;
(通过内存管道,操作流水等技术进行拼接各个处理模块)
九,灰度原则;
(灰度发布策略是根据用户号码段,用户ip段,还是用户vip等级,用户所在城市等进行灰度升级,保证系统的平滑迭代)
十,异常的快速响应和一键切换原则;
(IDC断电?系统切换到正常的成本是多少?时间呢?需要几个人操作?牛的系统可以一个人在管理后台按一个按钮就可以切换,再按一下就可以切换回来)
十一,有损服务原则;
(用低成本提供海量的服务原则)
十二,一切简单化处理的原则,真真假假,假假真真!
(方案的简单化,允许的误差评估等)
十三,充分利用DNS层做好系统的可分布设计。
十四,区分系统行为和用户行为并分别进行设计,甚至在关键时刻可以进行转换。
十五,坚持app_server设计的无状态设计原则,转变用户行为为系统行为,使得app_server具有无状态的特点。
十六,负载均衡原则和平滑扩容。
十七,多级cache设计以及各个cache的路由设计。
十八,“大系统小做”原则。
十九,面向接口编程,面向服务编程设计原则,解耦业务模块的依赖关系。
二十,强事务模型到最终一致性事务模型的转换原则。