看了《淘宝技术这十年》和《大型网站系统与Java中间件实践》这些书,对大型B/S系统的构建越来越感兴趣,于是尝试收集和总结一些常用的技术手段。不过大型网站的架构是根据业务需求不断完善的,需要结合自身特点做特定的设计和考虑。

缓存:

  本地缓存:OSCache

  分布式缓存:Memcached、Redis、Tair(淘系)

数据库:

  读写分离:通过主备功能实现数据同步

  分库分表:TDDL(淘系)

    数据库水平拆分:同一张表拆分,比如usr表,拆分数据量太大的表

    数据库垂直拆分:根据业务,把不同的表放到不同的数据库里

服务器:

  CDN:蓝汛、网宿运营商

  反向代理:Squid,Nginx

  负载均衡:

    硬件解决方案:F5

分布式文件系统:NFS、TFS(淘系)

    软件解决方案(#1):LVS、Nginx、HAProxy

查询:

  关系数据库:效率低,小型系统使用

  NOSQL:高并发、大数据的查询

    键值(Key-Value)存储数据库:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
    列存储数据库:Cassandra, HBase, Riak
    文档型数据库:CouchDB, MongoDb
    图形(Graph)数据库:Neo4J, InfoGrid, Infinite Graph.

  搜索引擎:lucene

分布式系统:

  应用服务器拆分:应用程序进行业务拆分,每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。

  分布式服务化应用:Dubbo(淘系)、HSF(淘系)

    

图1(#2)

#1:LVS是四层负载均衡,根据目标地址和端口选择内部服务器,Nginx是七层负载均衡和HAProxy支持四层、七层负载均衡,可以根据报文内容选择内部服务器,因此LVS分发路径优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。

#2:图1和本文章部分内容来源于其它博主(http://www.cnblogs.com/leefreeman/p/3993449.html)博客,非本人原创

后记:关于优化

1.避开网络开销,避开海量数据,避开资源争夺 是所有高性能的几个基本要素。(来源:http://www.cnblogs.com/selfteam/p/4036317.html)

大型B/S系统技术总结(不断更新)的更多相关文章

  1. 大型网站用什么技术比较好,JSP,PHP,ASP.NET

    大型网站,我建议要考虑的问题: 首先讨论一下大型网站需要注意和考虑的问题. 数据库海量数据处理:负载量不大的情况下select.delete和update是响应很迅速的,最多加几个索引就可以搞定,但千 ...

  2. 干货|爱奇艺CDN巡检系统技术解析

    小结: 1. 中心处理系统 /1/将定制后的巡检任务拆分,通过配置与任务分发系统.CMDB*( configuration management database)将派发到边缘拨测系统/2/处理边缘拨 ...

  3. 浅析Linux服务器集群系统技术

    浅析Linux服务器集群系统技术 目录 前言 常用的服务器集群 集群系统的优势 LVS集群的通用体系结构 为什么使用层次的体系结构 为什么是共享存储 可伸缩Web服务 前言 总结两篇技术文章,努力学习 ...

  4. 大型网站优化-memcache技术

    大型网站优化-memcache技术 memory+cache 内存缓存 memcache简介 memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发 ...

  5. 微信团队原创分享:iOS版微信的内存监控系统技术实践

    本文来自微信开发团队yangyang的技术分享. 一.前言 FOOM(Foreground Out Of Memory),是指App在前台因消耗内存过多引起系统强杀.对用户而言,表现跟crash一样. ...

  6. 从游击队到正规军(三):基于Go的马蜂窝旅游网分布式IM系统技术实践

    本文由马蜂窝技术团队电商交易基础平台研发工程师"Anti Walker"原创分享. 一.引言 即时通讯(IM)功能对于电商平台来说非常重要,特别是旅游电商. 从商品复杂性来看,一个 ...

  7. 解析大型.NET ERP系统 十三种界面设计模式

    成熟的ERP系统的界面应该都是从模板中拷贝出来的,各类功能的界面有规律可遵循.软件界面设计模式化或是艺术性的创作,我认可前者,模式化的界面客户容易举一反三,降低学习门槛.除了一些小部分的功能界面设计特 ...

  8. Ubuntu系统下面软件安装更新命令

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  9. 管理支撑办公系统技术架构选型对照讨论(J2EE与SOA对照)

    续:管理支撑办公系统技术架构选型及相关技术应用范围.方法分析 M域办公系统改造.整合涉及到OA.业务流程.部室信息站点.部室专业管理等系统和信息共享等新需求,从信息化视角来看,内容多并且杂,这里核心业 ...

随机推荐

  1. android118 上拉下拉刷新列表listView实现

    MainActivity.java package com.heima52.pullrefresh; import java.util.ArrayList; import com.heima52.pu ...

  2. 建索引让SQL飞起来

    今天帮助看了一个哥们的数据库,帮他抓了一下等待事件,刚好有一个sql在等待事件中,顺便看看 监控等待事件 select a.SID, a.EVENT, b.OSUSER, b.username, b. ...

  3. next nextval

    1 KMP算法中next与nextval值的计算 以上两张图代表了next值的求法,本人总结后做如下叙述: 根据公式可知: next[1]=0 next[2]=1 next[3]的求法根据公式可以直接 ...

  4. [Doc ID 1666646.1]如何使用功能管理员清除缓存?

    文档内容   目标   解决方案 适用于: Oracle iProcurement - 版本 11.5.1 到 12.0.0 [发行版 11.5 到 12] 本文档所含信息适用于所有平台 目标 怎样通 ...

  5. PowerShell 批量增加ACL

    $serviceName="云服务名称"$vmName="虚拟机名称"$endPoint="终结点名称"$acl=New-AzureAclC ...

  6. httpd.conf配置解析php

    PHPIniDir "D:/php-5.3.5" LoadModule php5_module "D:/php-5.3.5/php5apache2_2.dll" ...

  7. linux 远程工具

    SecureCRT SecureCRT官网地址:http://www.vandyke.com/products/securecrt/ Xmanager官方网址:http://www.netsarang ...

  8. C语言中 指针、引用和取值

    指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针 ...

  9. PV模型

    你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? 一.PV是什么 PV是page view的简写.PV是指页面的访问次数,每打开 ...

  10. Spring分布式事务实现(适用于spring-tx 2.5)

    http://log-cd.iteye.com/blog/807607 分布式事务是指操作多个数据库之间的事务,spring的org.springframework.transaction.jta.J ...