最近在考虑电商平台高并发下订单处理问题,web
总结以下:数据库
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(队列点)的内容,包括未出、已出的队列内容。
● 查看队列内容时,支持多字符集编码。 配置使用以下 1、前期准备 依赖包 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
2、安装配置 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