1.分布式
分布式,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。
在不同的技术层面,包括分布式文件系统,分布式缓存,分布式数据库,分布式计算等,关键技术栈有Hadoop、zookeeper、MQ等。
一般来说,分布式的实现有两种形式。
**水平扩展:**当一台机器扛不住流量时,通过添加机器的方式,将流量通过负载均衡策略分到不同的服务器上,不同的服务器都可以提供服务。
**垂直拆分:**前台有多重查询需求时,一台机器无法处理,可以将不同的查询需求分发到不同的机器上,比如A机器处理余票查询,B机器处理支付的请求。
2.高并发
高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况(常见秒杀场景、抢票场景),该情况会导致系统在这段时间内执行大量的操作,例如对资源的请求,数据库的交互。高并发处理的不好,会降低用户的体验,甚至导致系统宕机。
想要系统适应高并发需要从各个方面进行系统优化,包括硬件、网络、系统架构、开发语言、数据结构的运用、算法优化、数据库优化、缓存优化、CDN技术的应用等。
分布式与多线程都是实现高并发的方式,分布式技术可以将不同的流量分到不同的物理服务器上。多线程技术可以将一台服务器的服务能力最大化,充分利用计算机资源。
3.多线程
多线程指从软件或硬件上实现多个线程并发的技术,更多的是解决CPU调度多个进程的问题,从而让这些进程看上去是同时执行(实际是交替运行的)。
多线程解决的问题明确,线程安全是多线程问题中的关键。