互联网项目架构演变

目录

  • 互联网项目架构演变
    • 一、起源--单机版项目
    • 二、改进版本1--Memcache缓存
    • 三、改进版本2--MySQL主从读写分离
    • 四、改进版本3--MySQL集群
    • 五、目前互联网常用架构
    • 六、目前互联网的新要求:3V和3高

一、起源–单机版项目

二、改进版本1–Memcache缓存


着访问量上升,大部分使用MySQL架构的网站在数据库上都开始出现性能问题,Web程序不能再仅仅专注在功能上,同时也在追求性能。开始使用缓存技术缓解数据库压力,优化数据库的结构和索引。刚开始时比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大,文件缓存中的数据不能在多台Web服务器之间共享,大量的小文件IO也带来了比较高的IO压力。在这种情况下,Memcache就成了一款非常有效的解决方案。

Memcache作为一个独立的分布式缓存服务器,为多个Web服务器提供了一个共享的高性能缓存服务,在Memcache服务器上,又发展了根据hash算法来进行多台Memcache缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效问题。

三、改进版本2–MySQL主从读写分离


由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了

四、改进版本3–MySQL集群


在Memcached的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

同时,开始流行使用分表分库来缓解写压力和数据增长的扩展问题。这个时候,分表分库成了一个热门技术,是业界讨论的热门技术问题。也就在这个时候,MySQL推出了还不太稳定的表分区,这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群,但性能也不能很好满足互联网的要求,只是在高可靠性上提供了非常大的保证。

MySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。比如1000万4KB大小的文本就接近40GB的大小,如果能把这些数据从MySQL省去,MySQL将变得非常的小。关系数据库很强大,但是它并不能很好的应付所有的应用场景。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。

五、目前互联网常用架构

六、目前互联网的新要求:3V和3高

大数据时代的3V

  • Volume:海量,数据量极大
  • Variety:多样
    数据类型:文本、图片、音频、视频……
    终端设备:PC、移动端、嵌入式设备……
  • Velocity:实时
    直播,金融证券……

互联网时代的3高

  • 高可扩
    不断优化现有的功能,不断开发新的功能;
  • 高性能
    不能让用户感觉到等待的时间;
  • 高并发
    同时处理并发请求的能力,如双十一的秒杀、抢购火车票;
    提升硬件,优化系统,优化项目,将费时的操作进入异步处理;

互联网项目架构演变历史相关推荐

  1. Java项目架构演变:单体应用-SOA-微服务

    单体应用 概览 所有功能全部打包在一起.大部分是一个jar包或者war包,随着业务发展功能增多,这个项目会越来越臃肿 优点 容易开发,测试,部署,适合项目初期试错 缺点 复杂性高:代码多,十万行,百万 ...

  2. php项目分布式架构设计,【转】互联网项目架构之基于服务的分布式架构

    以前一直找一篇通俗易懂的文章,今天终于找到了,记录下. 文章来源:赵小忠 文章地址:https://www.cnblogs.com/1315925303zxz/p/6371550.html 随着互联网 ...

  3. 微服务架构 之 互联网项目架构演变过程 (单点架构,模块化架构,分布式架构,soa架构,微服务架构)

    一.什么是单点系统(传统架构)? 1.传统的SSH,SSM 架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 2. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH ...

  4. 软件技术架构演变历史

    1.传统架构 传统架构 – 软件架构 – 图一                           传统架构 – 硬件架构 – 图二(仅供参考) 传统架构 – 企业组织架构 – 图三(仅供参考) 为什 ...

  5. 互联网应用的特点及其架构演变

    一.传统项目和互联网项目的区别 传统项目: OA.HR.CRM等系统 目标人群:企业员工 特点:项目使用人数较少.并发量相对较少.用户忍耐力较高 互联网项目: 淘宝.天猫.京东 目标人群:互联网 特点 ...

  6. 宇贸电商二期-项目架构搭建

    Hello,大家好,我是 Steafan ,本片博文为大家带来宇贸电商平台二期项目的架构搭建.在上篇博文中,我为大家介绍了宇贸电商平台二期需要演变的架构,以及二期需要实现的功能模块,那么接下来就让我们 ...

  7. 从技术演变的角度看互联网后台架构

    这是去年在部门内部做的一个面向后台开发新同学的课程,因为其他BG一些同学要求分享,所以发一下. 其实内容都是些常见开源组件的high level描述,比如flask, express框架,中间件的演化 ...

  8. 张力柯:从技术演变的角度看互联网后台架构(附视频回顾)

    5月25日,互联网架构技术沙龙圆满落幕.本期沙龙特邀请腾讯的技术专家分享关于技术架构.落地实践案例.无服务器云函数架构.海量存储系统架构等话题,从技术角度看架构发展,为开发者们带来丰富的实践经验内容, ...

  9. 互联网时代架构的演变

    一.导读 互联网的架构演进过程分为三个时代:单机时代.集群时代和分布式时代.三个时代并非按照历史时间顺序排列,更多的是由团队或产品所处的时期来决定. 二.过程 单机时代 互联网早期,好比杭研某个产品团 ...

最新文章

  1. java尝试编写macd,试验顶背离底背离
  2. 【深度学习笔记】Precision、Recall
  3. python 读取文件
  4. CSS实现【表格内容超过一行的部分,用省略号代替】
  5. 音视频开发基础(二)常用的直播协议
  6. 外包员工午休起身喝水被正式员工大骂:脑子进“S”,打扰我休息
  7. NLP学习04--长短期记忆网络LSTM
  8. Spring Boot和Dubbo整合
  9. WSL : llvm、clang 和XTP
  10. mw150um 驱动程序win10_水星MW150UM无线网卡驱动下载-水星MW150UM 1.0无线网卡驱动官方版下载[电脑版]-华军软件园...
  11. steamcommunity本地反代443端口/80端口被占用解决办法
  12. STM32驱动直流电机的程序与电路设计(IR2110S自举电路+H桥+高级定时器和死区PWM)
  13. 微信小程序如何做营销推广?
  14. IE浏览器将于明年6月“退役”,程序员和IE的爱恨情仇终结了
  15. 2K分辨率显示器调整缩放125%部分软件模糊的解决办法
  16. java工程项目的结构拆分
  17. VMware下载安装教程(超详细)
  18. 我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+
  19. 华为云 承诺重于泰山!
  20. UVM——TLM2通信

热门文章

  1. 催化燃烧装置(RCO)环保处理设备高效
  2. [C#错误]未找到类型或命名空间名称 (是否缺少 using 指令或程序集引用?)
  3. Python编程:使用money对货币进行计算
  4. label:for属性和form属性
  5. EL表达式 (超级详细!!)
  6. [励志文章]nbsp;一个计算机高手的成长
  7. iOS自定义表情的实现
  8. 大二下学期软件工程课程总结
  9. 2021年熔化焊接与热切割找答案及熔化焊接与热切割模拟考试软件
  10. Kali入门到入狱-CC攻击