一日,与一高手在茶馆聊天。他问道:在鞋厂剑派这两年,可习的什么高深的剑法?我不由一愣,细细想来,这两年每日练习的都是简单的劈砍动作和一些简练的套路。并没有去练什么高深的剑法。不过鞋厂剑派在江湖上也算小有名气战力不俗,也攻下了不小的山头,就连天下三大门派之一BB派也对我们的山头虎视眈眈。门派的头领们为何没让我们去练习高深的剑法?想来,我们打的是群架,而不是单挑。把每个练习简单招式的人放在一起,简单的招式组成的就是威力极大的剑阵。
剑阵才是一门神功。
剑阵也并非一开始就威力极大,也是由几个人简单的组合,经历生死攸关的战斗,才逐步发展而来。
这剑阵就是我们互联网公司大型的IT系统。
 
 
那怎样才算一个大型的IT系统呢?一个系统既要有大并发的用户访问,又有海量的数据才能算大型IT系统。
 
我们现在常用的大型IT系统都是从小系统开始,随着用户量和数据量的大幅增加一步一步发展而来。
 
最开始是最简单的系统架构,应用和数据库部署在同一台服务器上,比如:网站应用+数据库服务器或者面向App的Service+数据库服务器。
这种系统架构可以支撑每天几百到上万人的访问。
一、随着用户量和数据量的上升,单服务器的负载逐渐升高,这时候可以把数据库拆分到一台单独的服务器上。这样就能缓解系统的压力。
二、接下来应用服务器的负载又过高,这时候就要将应用服务器扩展为集群。通过2个手段:1,引入负载均衡设备,将请求均匀的转发到集群中的服务器上。2,引入Session Server 让用户感觉到是跟同一台服务器通讯。
三、后来数据库压力又变大。这个时候,可以将数据库进行垂直切分,就是按照业务单元,将数据库解耦。每个独立的业务数据,可以单独存放在一个数据库中。还有水平分表、读写分离等措施。这个时候公司可以搭建公司内统一的分布式数据访问层框架。
 
四、随着业务的飞速发展,系统无节制的变的臃肿庞大,大量的web service 的调用将我们的系统变成了一个蜘蛛网。质量越来越难以保证。故障频发,效率低下,团队人困马乏。
    这个时候就可以引入服务化框架,将系统拆小,重视系统分层,控制系统间的调用关系。
    采用消息系统来解决业务系统之间的强耦合问题。
五、使用软负载中心与集中配置管理来支撑服务化框架、消息系统、分布式数据访问层、所有应用的配置管理等。
六、另外构建大型互联网IT系统的其他要素:CDN、大型网站的存储系统(分布式文件系统、NoSQL、缓存系统)、搜索系统、数据计算支撑、发布系统、应用监控系统、依赖管理系统等等。
 
如图:
 

互联网公司IT系统架构进化之路的更多相关文章

  1. 从游击队到正规军:马蜂窝旅游网的IM系统架构演进之路

    本文引用自马蜂窝公众号,由马蜂窝技术团队原创分享. 一.引言 今天,越来越多的用户被马蜂窝持续积累的笔记.攻略.嗡嗡等优质的分享内容所吸引,在这里激发了去旅行的热情,同时也拉动了马蜂窝交易的增长.在帮 ...

  2. 大型网站系统架构演化之路【mark】

    前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...

  3. springcloud (一)系统架构演变之路

    演变过程 从传统架构(单点应用)→分布式架构(以项目进行拆分)→SOA架构(面向服务架构)→微服务架构 1 传统架构 其实就是ssh架构或者ssm架构,属于单点应用,把整个开发业务模块都会在一个项目中 ...

  4. QQ音乐PB级ClickHouse实时数据平台架构演进之路

    导语 | OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过Q ...

  5. Android之路-------浅淡Android历史、系统架构与开发特色

    前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结 ...

  6. HBase 学习之路(二)—— HBase系统架构及数据结构

    一.基本概念 一个典型的Hbase Table 表如下: 1.1 Row Key (行键) Row Key是用来检索记录的主键.想要访问HBase Table中的数据,只有以下三种方式: 通过指定的R ...

  7. 转:微信Android客户端架构演进之路

    转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 20 ...

  8. 架构师之路-在Dubbo中开发REST风格的远程调用

    架构师之路:从无到有搭建中小型互联网公司后台服务架构与运维架构 http://www.roncoo.com/course/view/ae1dbb70496349d3a8899b6c68f7d10b 概 ...

  9. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  10. 5G系统架构

    原文标题:迈向5G之路,颠覆性的5G系统架构?   本文部分图片,资料摘自<迈向5G C-RAN:需求.架构与挑战> 突如一夜春风来,随着Polar码与LDPC码作为5G编码候选方案,通信 ...

随机推荐

  1. VScode中文乱码问题

    参考链接 https://blog.csdn.net/weixin_40040107/article/details/103721554?utm_medium=distribute.pc_releva ...

  2. 数据类型之字符串(string)(三)

    其他操作 1.len():求序列长度,返回数字 a = 'my name is wang'len(a) 返回 15 空格也占一个位置. 2.+:连接2个字符串 >>> b = 'wh ...

  3. vue常用插件集合(常用,但一般UI库又不太能满足)

    # v-base-plugins   ``` bash # install  npm i v-base-plugins --save  npm start #引入 import myPlugin fr ...

  4. mysql错误号码2003 can't connect to mysql server on 'localhost' (0)解决方案

    找到mysql安装目录下的Bin目录,在cmd中进入这个目录,运行net start mysql 却显示服务名无效 所以此时 首先在MYSQL的安装目录bin下,输入mysqld --install ...

  5. 中间件Middleware 使用及相关概念

    中间件是装配再应用管道里处理请求和相应的软件,是使用Use,Map,Run扩展方法配置的请求委托,请求委托可以是类,或者匿名方法.每个中间件可调用下一个中间件,直到终端中间件(不调用下一个中间件的就是 ...

  6. mysql 5.7 gtid 主从复制

    GTID中slave端的binlog是必须开启的,目的是记录执行过的GTID 主库#开启gtidlog-bin=mysql-binexpire_logs_days = 5binlog_format=r ...

  7. 福音---Mysql数据库Schema快速生成

    数据库工具--Navicat Premium 参考链接:https://jingyan.baidu.com/article/ea24bc395231e49b62b33183.html 以下是数据库sq ...

  8. python运行脚本报错Non-UTF-8

    写完脚本运行报:SyntaxError: Non-UTF-8 code starting with '\xa1' in file/createuser/test.py on line 1, but n ...

  9. 【Java】Object

    Object转Map import com.alibaba.fastjson.JSON; import com.runsky.utils.JsonUtils; String objectToJson ...

  10. 【GROMACS】分子动力学模拟①——环境搭建

    系统环境 Win11 22H2 企业版 开启虚拟化.window subsystem for liunx等虚拟机相关的功能 应用商店中安装WSL2 安装步骤 打开Ubuntu,输入sudo apt f ...