资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2017/3/11,#,解决高并发的常见策略,组员:,由,3,个层面导致,传输层 计算层 存储层,1,传输层,计算,层,存储层,大量用户对系统请求后,将会造成网络带宽和,Web,服务器的,I/O,瓶颈,!,接收大量用户请求进行计算,将会造成业务服务器和业务支撑服务器的瓶颈,!,传输层和计算层将会产生大量的数据,数据量暴增,将会导致,数据库,和,储存上的瓶颈,Main,ways,Main ways,Main ways,Main ways,1,.,首先需要解决网络带宽和,Web,请求的高并发,需要合理的加大服务器和带宽的投入,并且需要充分的利用系统中软件、硬件的缓存机制,将能缓存的内容都进行缓存存储,减少计算层和存储层的压力,2,其次需要对业务服务器和业务支撑服务器进行合理的分层,并且采用并行计算和分布式,算法,对大量计算进行处理,并且在开发的过程中需要采用,Java,SDK,中并发包,(Concurrency),进行编码实现,3,存储层需要采用分布式文件服务器和列式的存储服务器进行构建,支撑海量数据的存放和读取,并且还要对关系型数据进行深层次的配置参数优化,4,我们还需要清楚的认识到,将来根据系统运行的状态以及平台中不同的业务场景循序渐进的进行调整和优化,解决手段总体分析,2,还没法根本解决面临的高负载和高并发问题,所以需要将计算和负载的压力分载到每个计算机上,使用不同的服务器集群机组进行分布式和并行计算,面对所产生的,压力。,但是,3,存储,层层面分析,解决策略,并发压力,读写分离,分区策略,分片,存储层的常见策略,4,由于系统的读大于写的频率,数据库架构采用了,1,主,/,多从,双主多从的策略,所以我们将会将读和写进行分离,并且将大量的读请求分散给多台不同的,(Slave),服务器,系统采用不同的时间段作为分区的主要策略,提高对数据的读写性能,一台数据库将很快无法满足大量并发,需要使用库表散列,将数据库中的数据进行分散存储,列模式存储,使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率,数据库分片,5,分片,的,基本思想就要把一个,数据库,切分成多个部分放到不同的数据库,(server),上,从而缓解单一数据库的性能问题,。,不,太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个,server,上,。,如果,表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按,ID,散列)切分到多个数据库,(server),上。当然,现实中更多是这两种情况混杂在一起,这时候需要根据实际情况做出选择,也可能会综合使用垂直与水平切分,从而将原有数据库切分成类似矩阵一样可以无限扩充的数据库,(server),阵列。下面分别详细地介绍一下垂直切分和水平切分,.,垂直切分的最大特点就是规则简单,实施也更为,方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所使用的表分拆到不同的数据库中。根据不同的表来进行拆分,对应用程序的影响也更小,拆分规则也会比较简单清晰。,(,这也就是所谓的”,share nothing”,)。,简述垂直切分,6,Thank you for watching,Designed by Jiang,
展开阅读全文