该文章是微信公众号《 架构师之路》的一篇文章,该微信公众号是前58同城CTO沈剑的。
总体来该公众号的技术文章比较实用,之前看过他写的缓存系列,受益匪浅。
地址如下:
怎么理解分布式、高并发、多线程?
个人觉得部分程序员很容易把分布式、高并发、多线程都划上等号,实际上他们相互有关系,但是各自侧重点却不一样。
分布式
分布式主要解决单个物理服务器容量和性能瓶颈问题。涉及领域非常多,例如分布式文件系统(例如fastdfs)、分布式缓存(例如redis)、分布式数据库(例如mycat)。
水平扩展:将流量平分到所有服务器上,所有机器都可以提供相当的服务;
垂直拆分:将不同的需求分发到不同的机器上。
高并发
相对于分布式,高并发解决问题比较集中,主要为同时多少量的问题。
高并发的问题可以通过分布式处理解决,但是可以通过其他方式解决。例如缓存系统、静态文件处理
多线程
多线程是从软件或者硬件上实现多个线程并发执行的技术
多线程解决的问题是最明确的,手段也是比较单一的,基本上遇到的最大问题就是线程安全
总结
个人认为我们需要把很多技术概念弄清楚,其实从以上这篇介绍还是太过于浅。其实听过陈皓老师课程之后,我觉得还应该了解计算机如何从单机、单线程如何发展到目前这种分布式、高并发、多线程的过程。这种过程其实可以帮助我们了解技术发展规律。让我们更好把握未来的技术发展趋势。此外还需要更加深入这些概念更加深层次的知识。例如多线程就会涉及CPU调度,然后CPU调度的原理很多都用于解决分布式和高并发问题。所以各种技术看似无关,但是实际关联性很大。了解这些关系,可以加深我们对技术了解。