这篇文章主要是给大家介绍下企业级架构的发展过程,这十多年我处在中国一线互联网公司,基本见证了整个中国互联网企业架构变迁的历史。
一.简单的单体应用
在这个阶段企业主要的需求是线下的内容线上化,对于技术部门来说,就是如何快速构建一个系统,满足业务线上化的需求。图1-1是这个阶段企业的基本架构。

图1-1

构建出这样一个系统后,后面基本就是在WEB应用里面去堆业务,这时候大家开发效率挺高的,也不断地把业务从线下往线上搬迁。慢慢得大家发现一个问题,刚开始WEB应用是单台的,随着业务增多,访问人数在增加。单台机器有点抗不住压力了,有时候会发生down机了。

二.引入集群

这时候我们开始引入负载均衡,进行集群部署。如图1-2

图1-2

这时候WEB集群内每台机器部署的代码是一样的,但是通过集群的方式提升了整个应用的支撑能力。一般来说负载均衡有软件的和硬件的。一般硬件的有F5,软件的有apache,LVS, Nginx等,这里不详细展开。大家有兴趣可以自己去查看相关的资料。

三.数据库分库分表

随着业务的发展,WEB集群因为能水平扩展能支撑越来越多的客户。这时候数据库开始出现瓶颈了。这时候有几种策略,最简单的方式,提升数据库服务器硬件。比如从普通集群变成小型机等。早年间我给银行开发过系统,那时候银行很多Oracle数据库都是部署到小型机上面的。但是通过硬件提升,到一定程度后容易到达瓶颈。这时候数据库要考虑分库分表,同时可以进行。如图1-3

图1-3

四.引入缓存
数据库分库分表的同时往往会引入缓存相关的内容,数据库撑不住一些内容可以往缓存上去放。到底是先数据库进行分库分布,还是先上缓存,还是两者一起上这个取决于具体的业务需要。本质上都是通过将存储的一些内容分离,提升存储的性能。
引入缓存后的架构,如图1-4

图1-4

五.服务进行拆分
随着WEB集群的扩大,越来越多的业务沉淀到里面。WEB集群里面的应用,虽然是集群的方式在部署,但是
本质上还是单体的应用,无法满足业务的发展。需要对业务进行一些拆分,拆分后的架构。如图1-5

图1-5

应用拆分后,必然会涉及到应用间的交互。系统间交互一般都是RPC调用和消息队列。一般比较简单的都是可以直接使用hession等调用,但是复杂到一定程度后涉及到服务治理相关了。一般有dubbo等分布式服务框架可以使用。消息队列一般可以使用activemq, kafka等。到这里一般一个互联网应用架构的雏形出来了。当然现在很多应用还是涉及到前后端分离等等这里不再详细展开。

这篇是概述,是这个系列的第一篇,后面会对里面的一些具体内容进行展开。

企业级架构发展过程概述相关推荐

  1. 计算机语言的发展过程概述

    作为一个00后,在一年多的学习时间里观摩CSDN各界大佬的文章后,还是按耐不住想写文章的心情.今天就对计算机语言发展的过程做一个简要概述.才疏学浅,望各位指正. 计算机语言大体分为三个阶段:机器语言, ...

  2. 《MPLS在Cisco IOS上的配置》一第 1 章 MPLS概述1.1 IP转发过程概述

    本节书摘来自异步社区<MPLS在Cisco IOS上的配置>一书中的第1章,第1.1节,作者 [美]Lancy Lobo, CCIE #4690 , Umesh Lakshman,更多章节 ...

  3. 万字长文梳理CTR预估模型发展过程与关系图谱

    " 本文主要是对CTR预估中的常见模型进行梳理与总结,并分成模块进行概述.每个模型都会从「模型结构」.「优势」.「不足」三个方面进行探讨,在最后对所有模型之间的关系进行比较与总结" ...

  4. 16 张图详解,淘宝十年架构演进过程

    文本文以淘宝为例讲解了大型网站的架构演进过程,特此分享给大家,相信看完会有所收获.整个架构的演进过程: 单机架构 第一次演进:Tomcat与数据库分开部署 第二次演进:引入本地缓存和分布式缓存 第三次 ...

  5. 调度框架学习笔记(3)—— 集群调度框架的架构演进过程

    本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...

  6. Qt Linguist翻译过程概述

    Qt Linguist翻译过程概述 翻译过程概述 翻译过程概述 必须在应用程序中翻译的大多数文本由单个单词或简短短语组成.这些通常显示为窗口标题,菜单项,工具提示以及按钮,复选框和单选按钮的标签. 开 ...

  7. AI 质检学习报告——学习篇——AI质检产生背景和发展过程

    一.传统质检 1.什么是质检? 百度百科对质检的定义:质检顾名思义就是质量检验.可以详细划分为内部质检与外部质检. AI质检主要研究的是内部质检. 内部质量检查是指企业内部质检部门为了确保满足交付的工 ...

  8. 目标检测近5年发展历程概述(转)

    目标检测近5年发展历程概述,从R-CNN到RFBNet(2013--2018)(转) 2018年09月24日 12:32:02 C小C  [时间]2018.09.24 [题目]目标检测近5年发展历程概 ...

  9. 网络IO演变发展过程和模型介绍

    本文来说下网络IO演变发展过程和模型介绍 文章目录 概述 网络IO的发展 网络 IO 的各个发展阶段 网络的两个阶段 阻塞IO和非阻塞IO的区别 同步IO和异步IO的区别 阻塞IO 阻塞IO的概念 阻 ...

最新文章

  1. puppet 自定义facter
  2. mysql索引与优化
  3. ajax实现异步校验
  4. 彻底卸载VS 2013
  5. linux下无root权限使用yum安装的方法
  6. mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查
  7. 解决 error: Your local changes to the following files would be overwritten by merge:XXXX
  8. C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
  9. 人称代词和Be动词的现在简单肯定式_1
  10. Pentium 4处理器架构/微架构/流水线 (11) - NetBurst执行核详解 - Load/Store操作/存储转发
  11. PCIe规范的扩展:SR-IOV(Single Root I/O virtual)网卡直通技术
  12. atr netty长连接_基于Netty实现Web容器Netty版Tomcat(三)
  13. 4步带你从Web前端小白到入门!
  14. python open r w r+ w+ a的区别
  15. 动态滑窗-python
  16. IIS6同一IP部署多域名证书(部署指南)
  17. Python包导入时重命名
  18. 华为交换机:STP测试实验
  19. 华清远见重庆中心——HTML和CSS基础阶段技术总汇
  20. WeCenter 与 UCenter 对接

热门文章

  1. FAL_CLIENT和FAL_SERVER参数详解
  2. 来 COSCon'21 北京线下聚会,将开心开源进行到底!
  3. @requestMapping中的produces属性详解
  4. shiro解决cors_使用Netlify Dev彻底解决CORS
  5. html中marquee改变颜色,html中marquee标签的用法
  6. SpringBoot+Netty实现简单聊天室
  7. oracle ioc图标,如何在PPT中导入ico格式的图标
  8. 获取地图转成图片技术分析
  9. jquery滑入滑出
  10. Matlab针对Cell数组,如何进行批量处理:Cell2mat和cellstr的运用 ;matlab cell转换string