高并发下的业务提交策略(转)

出处:http://www.cnblogs.com/bobsoft/p/3622691.html

最近在考虑电商平台高并发下订单处理问题,

总结如下:

1.绝大部份的BS系统最大的性能瓶颈我觉得应该在DATABASE          

       为什么?因为其它影响因素(网络,存储,WEB服务器......),是可以通过投入比较快速的解决           

       网络?通过增加带宽解决;存储?通过存储设备或区域存储,即可解决大容量,可靠性问题;

       WEB服务器?可以通过四层或七层负 载均衡解决。

 2.而DATABASE最大受限在INSERT,也就是业务上所说的“提交”或“保存”        

       为什么?对于数据的查询,可以通过缓存集群解决。提交或保存,带来的DB是write lock,是排它性;并随着数据量大或并发高,锁的粒度,锁的时长更大,问题更严重。  

3.解决之道?           

         队列也。

    
HTTPSQS        

● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。   

● 非常快速,入队列、出队列速度超过10000次/秒。   

● 高并发,支持上万的并发连接,C10K不成问题。   

● 支持多队列。   

● 单个队列支持的最大队列数量高达10亿条。   

● 低内存消耗,存储几十GB的数据只需不到100MB的物理内存缓冲区。   

● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。   

● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。   

● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。   

● 查看队列内容时,支持多字符集编码。 配置使用如下 一、前期准备 依赖包  http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz  http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz  http://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz
二、安装配置 tar zxvf libevent-2.0.12-stable.tar.gz cd libevent-2.0.12-stable/ ./configure --prefix=/usr/local/libevent-2.0.12-stable/ make make install

tar zxvf tokyocabinet-1.4.47.tar.gz cd tokyocabinet-1.4.47/ ./configure --prefix=/usr/local/tokyocabinet-1.4.47/ #注:在32位Linux操作系统上编译Tokyo cabinet,请使用./configure --enable-off64代替./configure,可以使数据库文件突破2GB的限制。 #./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/ make make install
tar zxvf httpsqs-1.7.tar.gz cd httpsqs-1.7/ make make install

说明成功!
三、使用及帮助文档 启动: httpsqs -d -p 1218 -x /data0/queue https://code.google.com/p/httpsqs/
原文地址:https://www.cnblogs.com/smileberry/p/4178484.html