For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
分布式架构开发是目前大多数软件编程开发程序员都在使用的一种编程方法,下面我们就通过案例分析来简单了解一下,分布式架构伸缩设计类型分享。
对于大型的分布式架构而言,我们一直在追求一种简单、优雅的方式来应对访问量和数据量的增长。而这种方式通常指的是不需要改动软件程序,仅仅通过硬件升级或者增加机器就可以解决。
而这种就是分布式架构下的伸缩设计
伸缩分为垂直伸缩和水平伸缩两种
垂直伸缩:表示通过升级或者增加单台机器的硬件来支撑访问量以及数据量增长的方式,垂直伸缩的好处在于技术难度比较低,运营和改动成本也相对较低。但是缺点是机器性能是有瓶颈的,同时升级高性能的小型机或者大型机,成本是非常大的。这也是阿里去IOE的一个原因之一
增加CPU核心数:增加CPU后系统的服务能力能够得到大的增长,比如响应速度、同时可以处理的线程数。但是引入CPU后也会带来一些显著的问题
1.锁竞争加剧;多个线程同时运行访问某个共享数据,那么就涉及到锁竞争,锁竞争激烈时会导致很多线程都在等待锁,所以即时增加CPU也无法让线程得到更快的处理。当然这里是有调优手段的,可以通过调优手段来降低锁竞争*
2.支撑并发请求的线程数是固定的,那么即时增加CPU,系统的服务能力也不会得到提升*
3.对于单线程任务,多核心CPU是没有太大的作用的*
*增加内存:增加内存可以直接提成系统的响应速度,当然,也有可能达不到效果,就是如果JVM堆内存是固定的。
水平伸缩:通过增加机器来支撑访问量及数据量增长的方式,成为水平伸缩,水平伸缩理论上来说没有瓶颈,但是缺点是技术要求比较高,同时给运维带来了更大的挑战
垂直伸缩和水平伸缩都有各自的有点,我们在实际使用过程中都会对两者做结合,一方面要考虑硬件升级的成本,一方面要考虑软件改造的成本。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。