首页 > 其他 > 详细

关于高并发问题

时间:2018-09-18 16:49:01      阅读:226      评论:0      收藏:0      [点我收藏+]

全文从CSDN的 zhangnana200  转载而来,其中涉及的一些知识点,留着后续研究

 

门户高并发处理方案

 
个人总结:
 
1:动静分离;可以做成静态页面的部分,由后台发布系统发布为静态页面;
 
2:增加外部系统访问方式,可以使用webservice和mq接口方式;
 
3:增加定时任务处理,对于不需要及时处理的信息,用定时任务处理;
 
4:增加登录方式;
 
5:限定登录频率,对于一些登录成功率较低的IP进行限定,对于一些登录连续失败的IP,锁定登录;
 
6:在数据库上添加索引,减少对子表的查询,提升效率;
 
7:优化查询sql;
 
8:增加死锁监控,出现死锁后,可以定位出某个SQL出现了死锁,然后优化代码;
 
9:尽量使用缓存,比如用户信息缓存等。
 
 
接口高并发:

如果接口调用频繁(高并发),会出现问题,那么如何解决,

1:优化查询sql

2:在数据库表上加索引,以免对子表操作的时候全表查询。

3:接口异步处理,比如当接口调用到来时,直接返回成功,启动子线程,通过mq或者webservice接口,处理业务逻辑并调用子系统;

4:分mqwebservice两种接口调用;

5:数据库建立死锁监控,如果出现死锁,可以直接定位到某一个sql ,优化代码;

6:对于不需要及时处理的问题,可以保存到数据库,由定时任务执行;

7:对于共享资源,确保同一顺序访问。

 
下面是网络转载

简单做一个归纳,从低成本、高性能和高扩张性的角度来说有如下处理方案: 
  1、HTML静态化 
  2、图片服务器分离 
  3、数据库集群和库表散列 
  4、缓存 
   5、镜像 
   6、负载均衡;一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。 

 

下面也是一个牛人所做的总结,跟上面部分相同。 
高并发时,性能瓶颈及当前常用的应对措施 


1.数据库瓶颈。Mysql并发链接100 

2.apache 并发链接1500 

3.程序执行效率 



1.有数据库瓶颈时,当前处理方案无外乎 主从,集群。增加cache(memcached). 

如:手机之家新系统介绍及架构分享(http://www.slideshare.net/Fenng/ss-1218991?from=ss_embed) 

就是在cache层做优化 

又拍网架构(http://www.bopor.com/?p=652) 

是以增加数据库,分表分库的方法解决。 

Sina增加了mq(消息队列)来分发数据。 

还有风站用了key-value的数据库。其实这可以理解成一个持久化的缓存。 



2.apache瓶颈。 

增加服务器。负载均衡。如sina的F5 

由于进程数的限制。会把一些基本不变的代码挪出来放到单独的服务器。如css/js/图片。 

国内成功的案例是tom的cdn 


又如nginx的横空出世和squid的反向代理都是基于这个原因出来的。 


3.php的执行效率。原因有多个。 

1).本身的效率低。 

解决的成功案例是Zend Optimizer 和 facebooke的hiphop 

Taobao是把php代码编译成模块解决效率问题。 

2). 数据库查询效率问题。如可能有order by ,group by 等Sql数据问题。 

这个其实应该归结到数据库设计问题。 


解决的办法是建立正确的索引。增加memcache.。 

对like表 用专用的sphinx.和lucence 等搜索服务。 

程序员都应该会用explain对sql语句作分析。 


说到底。解决高并发就是上面所列技术,程序员要做的就是把每个技术具体实现。

关于高并发问题

原文:https://www.cnblogs.com/baojun-she/p/9669629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!