高并发思考和解决办法

系统高并发操作会出现系统访问性能问题,死锁,数据不同步等一系列问题。用电商系统来说,高并发下,会出现访问的订单状态不一致的情况。那么可以考虑对此问题做集群处理。

客户端2亿访问量就是高并发业务场景,会出现相应的问题。


现在考虑组成集群 经过负载后 压力平摊到多个节点,分担单实例的压力(多实例+负载),如图:

应用组成了集群,但是连接的还是一个存储,这个时候,所有的实例如果在储存上还是一个库,瓶颈就在存储这一边了,在mysql下,可以考虑住数据库集群,主从配置,读写分离。

这样就储存的压力也分开了,读在各个从库,写在主库,通过数据同步保证数据的一致性,但是并不是100%的各个库直接的数据一致,存在有延时,mysql中salve拿到master
的日志信息,通过日志 来恢复数据 从而实现数据同步
 ,这里先简单带过,后面再深入研究mysql主从同步问题。

这样做分担了服务器的压力,来解决并发的压力问题,如果是系统性能问题还可以同步以下几点去优化。

1、HTML静态化

2、图片服务器分离(也可以说是文件服务器分离)

3、数据库集群和库表散列

4、缓存

5、负载均衡

时间: 2024-10-08 23:40:31

高并发思考和解决办法的相关文章

Java高并发,如何解决,什么方式解决

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧. 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步    1.同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到 返回的值或消息后才往下执行其它的命令. 异步,执行完函数或方法

高并发网站之解决策略

系统在正式上线后必将会面对大量用户访问,面对各种层级的高并发请求,因此我们会采用高性能的服务器.高性能的数据库.高效率的编程语言.高性能的Web容器等.但是这几个方面,还无法从根本解决大型网站面临的高负载和高并发问题.因此我们必须对此做出相应的策略和技术解决方案. 1. 负载均衡 负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法. (1)单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高. (2)大量的并发

java高并发,如何解决,什么方式解决 (转)

之前我将高并发的解决方法误认为是线程或者是队列可以解决,因为高并发的时候是有很多用户在访问,导致出现系统数据不正确.丢失数据现象,所以想到的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品.转发评论微博或者是秒杀商品等,同一时间访问量特别大,队列在此起到特别的作用,将所有请求放入队列,以毫秒计时单位,有序的进行,从而不会出现数据丢失系统数据不正确的情况. 今天我经过查资料,高并发的解决方法有俩种,一种是使用缓存.另一种是使用生成静态页面:还有就是从最基础的地方优化我们写代码减少不必

tomcat7+java压测过程中占用CPU过高排查故障和解决办法

环架构境: 前端haproxy做为反向代理,后端N+1台tomcat+java服务 出现问题: 环境是新搭建的,本周在做压测刚开始的时候正常,随着量的上涨,导致CPU一直暴涨. 解决办法和思路: 1.)先通过top命令查看占用cpu高的PID # 根据top命令查看发现PID为2195和975的的进程占用CPU高达%200+,明显出现故障 2.)通过top -H -p pid命令查看,发现2275 3302 3375这几个进程占用CPU时间8分钟 3.)把线程pid转换为16进制,例如:上面的p

Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法

问题: 使用 AS 在 Fragment 中调用 getActivity() 方法的时候会出现可能为空指针的提醒 使用 monkey 多次十万次测试,会出现 getActivity() NullPointException 的情况 思考 为什么会出现这种情况,按说当前 Activity 存在,在 Fragment 中使用 getActivity() 是可以拿到的,不应该为空的 源码 fragment 的生命周期 以下源码基于 API 26 getActivity 可能为 Null, 跟进源码,可

直播中的高并发问题如何解决?

对于爱好观看直播的用户来说,能够如丝般顺滑地浏览视频是一大极致享受.但实际情况是,当某时段大量用户数据涌入(如观看人数上升,弹幕消息爆发等),若并发结构没有优化好,我们很难不遇到画面卡顿的情况.所以今天拓幻科技来分享一下,在直播系统源码开发过程中,如何正确处理高并发带来的这些卡顿问题呢?一.防盗链处理如果是网页直播间,当前站点没有做防盗链的话,就很容易遭受恶意请求.而过多的恶意请求,会对本身流量就比较大的直播间造成很大负担.比如说有A.B两个直播网站,A站享用了B站的资源,页面嵌入了B站的图片.

经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后,给出自己的理解和解决方案,不一定是正确的,但这些方法的确可以解决问题. 如果有人遇到同样的问题,并且看到我的文章解决,那是我的荣幸. !!!!!!但特别需要说明的是,看的越多,不明白的越多,我的看法可能是完全错误的,这些方法只是暂时解决了我的问题, !!!!!!如果有人发现了我的错误,请私信或评论告

项目中遇到并发问题和解决办法

最近在做一朋友帮砍价的活动.建立在微信公众号端的一个电商平台,然后我负责砍价模块. 由于这个模块高并发的几率比较大,所有有些逻辑模块就要采取一些缓存技术和排它锁的用户, 比如:由于项目需求是可以多个人同时砍价,我们又有砍到最低价格的限制,所以不进行处理的话很有可能就会超出我们所限制的价格!所以当用户砍价砍到最低价的时候就需要用到排它锁了 ,直接上代码: //说明砍到最低价 $order_price = $res['bg_order_price']-$res['bg_floorprice']; $

mysql占用服务器cpu过高的原因以及解决办法

排查方法 : > mysql -uroot -p      #登陆数据库 >********                    #输入数据库密码 mysql> show processlist; show processlist 命令详解: processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句. +-----+-------------+--------------------+-------+---------+-------+--------