真不知道题目该怎么起。高并发这么大。高并发详解?高并发解决方案?我其实就是把手上有的武器画了个图而已,连叫高并发简介都不合适。
高并发是个互联网回避不了的问题,但也是个有趣的话题。牵涉到的东西太多太多。任何一个小点都是个大课题。高并发是难点痛点,但是解决高并发也提现了人类智慧之光啊。
其实,高并发并不难,主流的解决方案有限,就是那几个老生常谈的东西,什么乐观锁啊读写分离啊。但是其实也很难。每一个实施起来都问题一堆,比如数据库的主从一致性啊,数据库与缓存的一致性啊等等。各个都是头大的问题。
下图是我一年前画的,把我手上能想到的可以使用的武器简单整理了下,有空再更新。这些武器可以单独使用,可以根据业务需求,组合使用,更是玄妙好玩至极
暂时将主流互联网架构定位四层五模块。分层法和命名每个架构师都有差异,无需关注,数据流是一直的。分别是:
前端——PC、H5、APP等请求方
站点层——暂时将负载均衡和应用服务器归为一层。nginx可以部署多个,用dns做轮训负载保证高可用
应用层——包括了controller层和service层。后端服务代码都属于这一层
缓存——高速存取组件
数据库——数据持久化
关于各层各模块相关的武器在旁边的方框内。