一、传统项目和互联网项目的区别

传统项目:
OA、HR、CRM等系统 目标人群:企业员工
特点:项目使用人数较少、并发量相对较少、用户忍耐力较高

互联网项目:
淘宝、天猫、京东 目标人群:互联网
特点:使用人数躲,访问量大,更注重用户体验:美观、功能、速度、稳定性

对于互联网项目而言,后端工程师可以干预到的,速度与稳定性

速度:打开一个新的页面,一瞬间的事情,页面间跳转没有延迟

稳定性:网站全年99.9%都可正常访问,不会出现问题

二、大型互联网项目架构目标:

互联网项目的特点:

  • 用户多

  • 流量大、并发高

  • 海量数据

  • 易受攻击

  • 功能繁琐

  • 变化快

衡量网站的性能指标

  • 响应时间:执行一个请求从开始时间到最后收到响应数据所花费的总体时间
  • 并发数:系统同时能处理的请求数量
    • 并发链接数:指客户端向服务器发起请求,并简历TCP链接,每秒服务器链接的总TCP数量
    • 请求数:QPS(Query Per Second)指每秒多少请求
    • 并发用户数:单位 时间内有多少用户
  • 吞吐量:指单位时间内系统能处理的请求数量
    • QPS:Query Per Second指每秒多少请求
    • TPS:Transaction Per Second 每秒事务数
    • 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此赖计算使用的时间和完成的事务个数。

互联网项目的架构目标

  • 高性能:提供快速的访问体验
  • 高可用:网站服务一直可以正常访问
  • 可伸缩:通过硬件增减,可以提高、降低处理能力(大促扩容)
  • 高可扩展:系统间耦合低,方便的通过新增、移除方式,增加、减少新的功能模块
  • 安全性:提供网站安全访问和数据加密,安全存储策略
  • 敏捷性:随需应变,快速响应

集群和分布式

集群:

  • 通俗描述:很多机器,干一样的事情
  • 专业描述:一个业务模块,部署在多态服务器上

分布式:

  • 通俗描述:很多机器,每台集群干不一样的事情,合起来就是一件复杂的大事(专业的干专业事,因为每件事性能要求不同)

  • 专业描述:一个大的业务系统,拆分为小的业务板块,分别部署在不同机器上

集群架构下的项目满足以下特点:

  • 高性能:集群可扩展,性能不够可以加机器,性能得以保证

  • 高可用:只要有一台机器没挂,服务就可以提供


集群分布式架构可以很好的满足互联网系统的架构目标

  • 高性能:集群可扩展,性能不够可以加机器,性能得以保证

  • 高可用:只要有一台机器没挂,服务就可以提供

  • 可伸缩:根据不同服务的性能要求,对不同的服务集群进行动态扩缩容

  • 高可扩展:需要新增或减少某些服务时,增减响应服务的集群即可

架构演进

单体架构

所有的服务部署在一台服务器上

  • 优点:简单开发部署方便,小型项目首选
  • 缺点:
    • 代码量大,项目启动慢
    • 可靠性差
    • 可伸缩性差
    • 扩展性和可维护性差
    • 性能低

垂直架构

垂直架构是将单体架构中的多个模块拆分为多个独立的项目,形成多个独立的单体架构

单体架构存在的问题:

  • 项目启动慢
  • 可靠性差
  • 可伸缩性差
  • 扩展性和可维护性差
  • 性能低

垂直架构存在的问题:

  • 重复功能太多

分布式架构

分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,提供给其他消费者以实现服务的共享与重用。

  • RPC:Remote Procedure Call 远程过程调用。

垂直架构存在的问题:

  • 重复功能太多

分布式架构存在的问题:

  • 服务提供方一旦发生变更,所有的笑给方都需要变更

SOA架构

SOA:(Service-OrientedArchitecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务质检定义好的接口和契约联系起来

ESB:(Enterparise Service Bus)企业服务总线,服务中介。主要提供了一个服务与服务之间的交互。ESB包含的功能如:负载均很,流量控制,加密处理,服务的监控,异常处理,监控告急等等

分布式架构存在的问题:

  • 服务提供方一旦发生变更,所有的笑给方都需要变更

微服务架构

  • 微服务架构是SOA上做的升华,微服务架构强调的是一个重点“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分成为多个可以独立开发、设计、运行的小应用、这些小应用之间通过各种服务完成交互和集成
  • 微服务架构=80%的SOA服务架构思想+100%的组件化架构思想+80%的领域建模思想

特点:

  • 服务实现组件化:开发者可以自由的选择开发技术,各团队之间不需要相同
  • 服务之间交互一般使用REST API
  • 去中心化:每个微服务有自己的私有数据库去持久化业务数据
  • 自动化部署:把应用拆分为一个一个独立的单个服务,方便自动化的部署、测试、运维

互联网应用的特点及其架构演变相关推荐

  1. 大型互联网架构演变历程

    大型互联网架构演变历程 2. 淘宝技术这10年 2.1. 淘宝现状 高并发已经成为当前互联网企业面临的巨大挑战!例如2015年"双十一"全球狂欢节正式落下帷幕,天猫最终交易额也达到 ...

  2. 互联网项目架构演变历史

    互联网项目架构演变 目录 互联网项目架构演变 一.起源--单机版项目 二.改进版本1--Memcache缓存 三.改进版本2--MySQL主从读写分离 四.改进版本3--MySQL集群 五.目前互联网 ...

  3. 大型网站架构演变和知识体系

    存爱好,作为收藏,原地址:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html ,同时向原创致敬 之前也有一些介绍大型网站架构 ...

  4. 1亿级PV网站架构演变

    作者:叶军 来自:http://www.yejun.cn/?p=1154 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结 ...

  5. 百分点内存数据库架构演变

    [2014中国数据库技术大会]内存计算:百分点内存数据库架构演变 Posted on 2014 年 5 月 5 日 by admin [IT168数据库大会现场报道]2014年4月10日-12日,第五 ...

  6. 大型网站应用中MySQL的架构演变史

    没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用.今天我们就从淘宝的发展来 ...

  7. Mysql在大型网站的应用架构演变

    原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/ 本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等, ...

  8. 大型网站架构演变和知识体系--转

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  9. 大型网站 linux,大型网站架构演变

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

最新文章

  1. LeetCode 61. 旋转链表
  2. Windows 技巧篇-鼠标指针安装方法,漂亮的鼠标指针推荐
  3. 白话 Session 与 Cookie:从经营杂货店开始
  4. 李彦宏被泼水背后,这些python AI发展的大事你都了解吗?
  5. 用JIRA管理你的项目
  6. linux 粘贴网站地址,linux 复制粘贴
  7. Kafka 源码分析之网络层(二)
  8. 安装sql时挂起的解决方法
  9. 用python怎样用程序输出文字_如何用Python输出PPT中的文字信息
  10. java 线程map_map集合分割以及多线程处理数据
  11. java生成可执行文件_关于打包java文件并生成可执行文件的问题
  12. ipv6 华为交换机 路由配置_华为交换机 01-08 IPv6 DNS配置
  13. 遗传算法实例(matlab编程实现)
  14. eda多功能数字钟课程设计_eda多功能数字钟设计_相关文章专题_写写帮文库
  15. matlab白噪声生成,数字信号处理——matlab生成白噪声
  16. 【面试】剑指OFFER
  17. 怎么判断两个多项式互素_多项式互素性质的补充讨论
  18. 计算机课还无聊吗,《快乐星球Ⅴ》电脑课还可以这样?
  19. 鸟哥的Linux私房菜(基础班)第八章学习笔记
  20. 黑客暗战 —— 黑帽、白帽、灰帽背后的隐秘世界

热门文章

  1. 大型电子商务平台架构
  2. 计算机专业留学法国哪个学校,法国留学读计算机专业去哪些学校?
  3. 《当程序员的那些狗日日子》(五十六)步入正轨
  4. html页脚位置调整,将页脚始终控制在页面最下方的几种方法
  5. 英文论文写作常用词汇及句型
  6. 在没SQL Server数据库情况下怎么打开.MDF文件?
  7. 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。...
  8. 计算机无法注册打印机,电脑中打印机添加不了怎么办
  9. 我的涨分日记(二)——BestCoder Round #59
  10. 奥特斯出席2018重庆市市长国际经济顾问团第十三届年会