高并发场景优化

本文探讨了并发和并行的区别,介绍了高并发场景下的优化策略,如静态化、图片服务器分离、数据库集群、缓存、负载均衡等,并针对数据安全在高并发下的关键问题和解决方案进行了深入解析,如悲观锁、乐观锁和实例应用。

1.并发:指一个cpu 一段时间内切换多个线程执行工作 cpu 和 线程 一对多的关系。多个线程切换执行。在一个时间段的线程代码运行时,其它线程处于挂起状.

并行:指多个cpu在一段时间内执行多个线程。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行.

区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生

2.高并发优化:

        1.html静态化,静态页面,减少大量数据库访问请求。

        2.图片服务器分离,有独立的图片服务器。降低提供页面访问请求的服务器压力。在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。

        3.数据库集群和库表散列,在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案。库表散列是常用并且最有效的解决方案。      库表散列 在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列

        4.缓存,架构方面的缓存,Apache提供缓存模块,也可以使用外加的Squid模块进行缓存。网站程序开发方面的缓存:调用linux的MemoryCache对一些数据进行缓存和通讯共享。

        5.镜像,一种文件存储形式,是冗余的一种类型。一个 磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后,又恢复成许多文件,RAID 1和RAID 10使用的就是镜像。

        6.负载均衡:负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。

高并发场景下的数据安全

多线程一定需要考虑线程数据安全,比如抢购环节,最后库存只剩一个,但是请求读取到的数据可能大于1,从而导致超发。解决思路有:

1、悲观锁的思路

在修改数据的时候,先锁定数据,保证只会有一个请求到达。但是,高并发下,每个请求都需要等锁,某些线程甚至可能永远等不到锁,请求就会死在那里。这些请求会很多,瞬间增大系统的平均响应实践,连接数被沾满,系统陷入异常。

2、FIFO队列思路

将请求发乳队列中,就不会造成有些请求永远等不到锁。但是,高并发下,很可能一瞬间将队列内存撑爆,或者说队列处理的速度远低于进入的速度,仍热会增大系统的响应时间,系统异常。

3、乐观锁的思路

每个请求的数据被处理之前,都会加上一个版本号,满足条件的版本号的请求被正确处理,其他请求直接拒绝返回。这个思路能解决前面两个的缺点,但是会增加CPU的运算量,设计上也稍微复杂一些

高并发场景:

        1、同一个帐号,一次性发送大量请求。

        2、多个帐号,一次性发送大量请求

        3、多个帐号,不同ip发送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值