1.接入层:
使用nginx进行负载均衡,对流量进行分发。
使用dbproxy对数据库读写分离。
使用redis缓存,提高数据访问性能。
2.应用进行垂直拆分:不同的功能和服务分隔开来,包装成高内聚低耦合的模块单元,不仅有助于软件的开发维护也便于不同模块的分布式部署。
3.分布式服务化、异步消息机制、数据库表水平拆分
分布式服务化:对系统应用进行服务化(如微服务),提高并发和可维护性,对服务进行差异化支撑,分布式事务方面可采用二阶段提交方式。
异步消息机制:主要解决大并发写入瓶颈,利用消息对列对写入消息进行排队,待数据库进行处理。
数据库表水平拆分:按一定规则将同一业务表的数据拆分到不同的库/表中(如HASH),面临的挑战主要是跟业务关联性强、跨表的数据合并等。
4.集群
服务器集群能够为相同的服务提供更多的并发支持,因此当有更多的用户访问时,只需要向集群中加入新的机器即可;另外可以实现当其中的某台服务器发生故障时,可以通过负载均衡的失效转移机制将请求转移至集群中其他的服务器上,因此可以提高系统的可用性。
原文:https://www.cnblogs.com/liuweiweitju/p/14636666.html