技术标签: 系统架构
当今技术的发展日新月异,系统架构也跟随技术的发展不断升级和改进,从传统的单一架构到分布式架构再到如今的微服务分布式架构,今天我们就来梳理一下系统架构的演变史。
NO.1 初期网站架构
网站建设初期,访问人数有限,数据量不大,只需要一台服务器足矣,这时应用程序、文件、数据库等所有资源全部集中在这台服务器上(也称为集中式部署),网站架构请看下图:
NO.2 应用和数据分离
随着网站业务的不断发展,一台服务器已经不能满足要求,用户访问量越来越大,数据量也越来越大,此时对网站的要求也逐渐变大,这就需要将应用和数据分离,变成应用服务器、文件服务器和数据库服务器。架构图如下:
NO.3 缓存数据以改善网站性能
随着用户逐渐的不断增加,数据库访问压力变大,导致访问延迟,性能较低,这时就需要缓存技术,将查询较多或者改动不大的数据缓存起来,降低数据库服务器负载压力,以加快应用访问速度,下面是基本的架构图:
NO.4 应用集群
在网站访问高峰,并发量大的情况下,应用服务器就成为了整个网站的瓶颈。单一的应用服务器资源有限,高并发情况下连接很快就会超限,机器容灾性较差,应用服务器一旦出问题(囧机),整个服务就crash。这时,我们就需要部署应用服务器集群,利用负载均衡器分散访问流量,减少单台服务器的压力,提供服务可用性,提高性能,网站架构图如下:
NO.5 数据库读写分离
这个阶段,数据继续增加,请求数量继续加大,单个数据库已然不能满足要求,这个时候需要部署多个数据库进行读写分离,请看架构图:
NO.6 部署 CDN 节点
用户访问量的增加意味着用户地域的分散请求,如果所有请求都直接发送中心服务器的话,距离越远,响应速度越差,这时就需要用到 CDN 技术,通过 CDN 加速,保证用户访问每次都从最近的服务器获取数据,架构图如下:
NO.7 分布式数据库
分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。
不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上,如下图所示:
NO.8 使用非关系型数据库
当网站数据足够庞大,达到PB甚至更高时,关系型数据库已经达到瓶颈,这时就需要考虑采用非关系型数据库了,请看下图:
NO.9 微服务架构
随着网站业务的不断扩大,我们需要将各个业务进行拆分,形成不能的产品线,每个产品线由不同的业务团队负责,各个产品之间需要通信,这时就要用到微服务架构,请看下图:
一、keras.preprocessing.image.load_img()读取单张图像在这里需要将需要的包加载进来import osfrom keras.preprocessing.image import load_img, img_to_array,imageimport matplotlib.pyplot as plt详情可见原文链接:https://blog.csdn.net/...
Aabstract 抽象的abstract base class (ABC)抽象基类abstract class 抽象类abstraction 抽象、抽象物、抽象性access 存取、访问access function 访问函数access level访问级别account 账户action 动作activate 激活active 活动的actual parameter ...
准备环境安装包地址:1.准备3台可以互相ping同的虚拟机2.win10系统本次安装的虚拟机分别为172.21.15.15172.21.15.17172.21.15.18mongoDB官网地址: https://www.mongodb.com/最新下载地址: https://www.mongodb.com/download-center/community1.1安装数据库1.1.1双击windows installer工具包选择complete默认安装在C:\Program F
在VTM5中,最大QP变为63(HEVC中最大QP为51),且初始QP传输方式也相应改变。当slice segment layer里slice_qp_delta非零时SliceQpY 初值也要改变。 init_qp_minus26的范围变为( − 26 + QpBdOffsetY ) ~ +37。在VTM5中,当变换块不是4的幂次时,在处理变换系数的同时修改QP或QP levelScale t...
计算机一级考试《MSOffice》考试知识点计算机一级考试是以基础知识为主的,那么《MSOffice》考试知识点有哪些呢?来看看小编的分享吧!计算机与网络信息安全的概念和防控1. 计算机安全定义国际标准化组织(ISO)对计算机安全的定义是:为数据处理系统建立和采取的技术上和管理上的安全保护,保护计算机硬件、软件不因偶然的或恶意的原因而遭破坏、更改和暴露。2. 计算机安全立法国务院于1994年2月1...
Linux nc命令Linux nc命令用于设置路由器。执行本指令可设置路由器的相关参数。语法nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...]参数说明:-g 设置路由器跃程通信网关,最多可设置8个。-G 设置来源路由指向器,其数值为4的倍数。-h 在线帮助。-i 设置时间间隔,以便传送信息及扫描通信端口。-...
软件使用过程中,有人反馈调用Intent打开文件地方无法出现选择。以为是个别用户手机上没有此类软件。后查看发现这些用户手机系统都是android7.0,查看7.0对于Intent的使用发现The increased level of file access security offered by a content URI makes FileProvider a key part ofAndr...
csdn 链接:https://blog.csdn.net/chengjingxuang123/article/details/105470815/
出品21ic中国电子网一路向北lm网站:bbs.21ic.com第一个问题,究竟要玩哪一个芯?今年真是变幻莫测的一年,芯片的真是流水账的价格,一天一个样,翻翻自己的抽屉,一堆的板卡,不知玩弄哪一个,一直想玩弄一下新塘的片子,可惜论坛没怎么做过新塘的开发板评测活动(也有可能做过,可能我只是一个新人),看到很多项目都用N76E003这个片子,今天就来研究一下,给大家一个提示哈,别指望我写太深的东西!...
可选的工具中文转换Unicode,目前有两种方式,自写工具类或引入第三方包,这里我推荐引入三方包,因为使用mvn配置非常简单,网上搜到的大多数都是自己写的工具类,试了一个,效果不是很好,因为把ASCII编码也转成Unicode格式了(一色的\u\u\u),虽然能用,但是可读性降低。引入第三方包,有一个很出名的escapeJava()方法,是apache下边的一个包,最开始在org.apache.c...
资料仅供参考资料仅供参考计算机信息检索02139自考资料第一章信息检索概述信息检索:指将信息按一定的方式组织和存储起来,并根据信息用户的需要找岀有关信息的过程。根据检索手段的不同,信息检索能够分为手工检索、光盘检索、联机检索和网络检索。信息检索的基本原理经过对大量的、分散无序的文献信息是进行搜集、加工、组织、存储,建立各种各样的检索系 统,并经过一定的方法和手段使存储与检索这两个过程所采用的特征标...
阿尔伯塔大学计算机工程专业硕士.pdf阿尔伯塔大学计算机工程 - Computer Engineering基本信息所 所阿尔伯塔大学属 在- University of 工程学院学 院Alberta校 系专 学计算机工程 -业 历...