1.首先会去调研这个系统的需求和以后的战略计划,从三个方面去设计,高可用原则、高并发原则、业务设计原则。
2.一个初创的系统,最基础是做到能用,为了实现高可用,考虑用负载均衡和方向代理实现分流、用限流的方式避免流量雪崩、使用服务降级保证核心的服务能正常使用,实现有损服务、通过隔离实现故障隔离、通过合理的设计超时与重试机制避免流量的雪崩,通过回滚的技术快速修复错误,最后通过预案和压测筹备出应急方案。
3.在用户量上升之后,单机系统无法满足业务的需求,继而考虑高并发,高并发需要从几个点入手,无状态应用,将配置抽离,更方便应用的扩展,拆分,为了使应用更加方便的扩展,可以对应用从业务、读写、功能等角度将应用进行拆分,拆分之后,实现服务化,普遍的单机应用将被淘汰,采用分布式的架构实现高并发,还可以考虑缓存,缓存可以从客户端、CDN、接入层、应用层、分布式缓存的角度考虑,最后尽可能的实现并发化,充分利用cpu多核处理。应用到的技术是缓存、异步并发、池化、分布式任务、消息队列、扩容等。
4.在业务设计方面,需要考虑幂等、状态与状态机(比如订单服务,有待付款、已付款、待发货、已发货等多种细分的状态,需要明确的定义)以及文档与注释。