交易网站的架构的一点研究心得
来源:互联网 发布:三维码生成软件 编辑:程序博客网 时间:2024/04/26 11:59
这两天同事正好做数据优化,碰巧遇到高并发数据读取的事情,一起探讨了一下,后来想起来淘宝的经验应该值得学习,找了一下文档,发现确实有学习的地方,下面先转一个人谈的高并发的文章(http://blog.csdn.net/xzknet/article/details/7790491)_,我看了一下也就前两段有可以理解的内容,后面竟是闲谈(可能没有仔细悟吧)。
个人感觉淘宝现在的架构是
反向代理层面:
这个层面应该没有什么有趣的地方,无外乎使用CDN加速一下访问速度,将静态的JS了,图片了缓存一下。硬件产品有F5,Array,软件有Nginx、Apache等吧。
WEB服务器层面
单个WEB服务器为用户提供服务的数量不论如何改造都是有限的,所以需要大量部署集群方能解决用户的高并发问题。但是又不能每次增加一个节点就重启一下全部服务器,那样多麻烦啊。完美的解决之道还在于节点可以随时增加,随时减少,所以程序开发时需要考虑好缓存的集群化部署,这样Web容器不论启动多少个,都是从Cache缓存集群中获取数据。
数据库层面:
卖家要实时数据,买家要高速查询数据,只有在交易时才需要实时的数据。
卖家+买家交易过程===》使用Oracle数据库,进行实时读写(量比较小,这时数据读写的比例比较均衡,需要保证数据的实时性)===》发布商品后(该信息转为读属性为主的资料),将信息使用后台异步的调度程序,将Oracle数据转换为他们自己基于MySQL开发的数据库。
买家===》读取MySQL集群数据库,进行高并发的数据查询。这个MySQL数据库比较有趣,是淘宝自己改造的一个版本,是淘宝使用MySQL改写的一个分支。利用MySQL的集群和分区的特性为集群服务器读取数据,并且为每一个MySQL服务器程序分配大量的内存来加速数据的读取,这样就解决买家高速查询获取数据的要求(感觉更像是一个可以使用SQL语句访问的Cache)。
(淘宝开发的MySQL数据库,貌似又开源出来了,这样又省钱,又可以横向扩展服务器,觉的读取压力大了就买几台服务器,部署上几个MySQL集群,再部署上几套前台应用程序,就基本解决问题了)
数据搜索层面
数据搜索是一个麻烦事情,不过可以考虑使用SOLR解决数据库的搜索,毕竟交易网站随着数据的增加,业务数据会越来越多,前期不考虑,后期用户的一个简单的模糊查询就会把数据库给搞死了。所以还是使用SOLR辅助解决数据库的检索。
以上仅仅是个人对淘宝高并发研究的一点拙见,大家有什么好的看法了多多交流。
呵呵,家里有事了,以后有啥心得了再补这个吧。
- 交易网站的架构的一点研究心得
- 对OpenHpi研究的一点心得随记
- 关于DNN网站设计的一点心得
- 关于网站建设的一点心得
- 运营电影网站的一点个人心得
- 关于SSH架构的一点研究
- 研究ListView里的FastScroller的一点心得
- 10/22的交易心得
- 10/23的交易心得
- Amf3+socket开发网络游戏或应用的一点研究心得
- Amf3+socket开发网络游戏或应用的一点研究心得
- 对于流式布局的研究和一点心得
- artoolkit学习之ARSimpleNativeCarsProj的一点研究心得
- 自己对架构网游服务器多线程的一点心得
- 开发基于Safari网站的一点心得(1)
- .NET网站部分整合DZ论坛的一点心得
- 我的一点心得
- ListBox的一点心得!
- zend framework 重定向方法(render, forward, redirect)总结
- 将一个n元素的数组平均分为m分,是每组和相等,求最大m
- 史蒂夫·乔布斯(简介)
- C++ 值传递、指针传递、引用传递详解
- 移植thttpd Web服务器
- 交易网站的架构的一点研究心得
- Zend Framework 第九节数据库操作学习总结
- sicily--1509. Rails
- POJ 2699 枚举+最大流
- 基于hadoop和hbase的youtube简单模拟4
- 移植mtd-utils工具包--使用教程
- QT调试提示-没有GDB二进制档可用为二进制格式'x86-windows-msvc2010-pe-32bit
- 插入排序
- 导出实体记录到Excel后,没有导出主键的值