网站架构:基础认识
本文将介绍什么是网站架构,网站架构要做些什么事情,网站架构的发展历程
网站架构:根据要解决的问题,对目标系统的边界进行界定,对目标系统按照某个原则进行切分,使拆分处理的部分进行有机的联系,合并组装称为一个整体,完成目标系统的所有工作
核心目标:支持业务,技术解耦
常用的主要手段:水平(横向分离),垂直(纵向分离)
网站架构的核心五要素
高性能:提供快速的访问体验
可用性:保障服务的可用(即使出现部分服务器宕机,依然可用)
伸缩性:通过硬件增加/减少,提高/降低处理能力
扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块
安全性:提供网站访问和数据加密,安全存储等策略
架构的发展过程
部署: 单体 -> 集群 -> 分布式
发展: 单一应用(单体)-> 集群(单应用多部署)-> 垂直应用架构(纵向分离) -> 分布式架构(横向拆分) -> 流动计算(资源调度和治理)
单一应用架构
介绍:一个应用,将所有功能部署在一起,部署在一台服务器上
特点:用于简化增删改查工作流的数据访问框架ORM是关键
集群
介绍:在高并发的需求下,单体应用的缺陷是无法忍受的,将单一应用部署多份,部署在一台或多台机器上
特点:通过负载均衡分发服务请求不同的应用服务中(一定程度上解决了高并发问题)
垂直应用架构
介绍:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相关的几个应用
特点:用户加速前端页面开发的WEB框架(MVC)是关键
分布式架构
介绍:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的时长需求
特点:用于提高业务复用及整合分布式服务框架(RPC)是关键
流动计算架构
介绍:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率
特点:用于提高机器利用率的资源调度和治理中心(SOA)是关键
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现圆形渐变加载进度条
- Kotlin 协程和 Android SQLite API 中的线程模型
- Android轮播图点击图片放大效果的实现方法
- 隐私策略更新 | Android 11 应用兼容性适配
- Android android:exported = true 用法详解
- Android WorkManager浅谈
- 详解Android 8.0以上系统应用如何保活
- 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
- android studio 3.4配置Android -jni 开发基础的教程详解
- android TextView中识别多个url并分别点击跳转方法详解
- Android WebView支持input file启用相机/选取照片功能
- 谈谈RxJava2中的异常及处理方法
- Android Koin2基本使用的那件事儿
- 一篇文章弄懂kotlin的扩展方法
- 浅谈Android客户端与服务器的数据交互总结