网站开发维护的好处,网络营销策略方案,攀枝花市网站建设,华企网站建设推广优化docker 的八大技术架构 单机架构
概念#xff1a; 应用服务和数据库服务公用一台服务器 出现背景#xff1a; 出现在互联网早期#xff0c;访问量比较小#xff0c;单机足以满足需求
架构优缺点#xff1a; 优点#xff1a;部署简单#xff0c;成本低 缺点#xff1…docker 的八大技术架构 单机架构
概念 应用服务和数据库服务公用一台服务器 出现背景 出现在互联网早期访问量比较小单机足以满足需求
架构优缺点 优点部署简单成本低 缺点存在严重的性能瓶颈数据库和应用互相竞争资源
架构工作原理
以购物网站为例可以看到通过应用划分了多个模块和 数据库 在单个服务器上协作完成业务运行
示例如下图
对应的工作原理 应用数据分离架构
概念 应用服务和数据库服务使用不同服务器 出现背景 单机存在严重的资源竞争导致站点变慢
架构优缺点 优点 成本相对可控优点性能相比单机有提升数据库单独隔离不会因为应用把数据库搞坏有—定的容灾能力 缺点 硬件成本变高性能有瓶颈无法应对海量并发
架构应用原理
还是以购物网站为例可以看到应用划分了多个模块和 数据库 在各自的服务器上通过网络协作完成业务运行
示例如下图 对应的工作原理 应用服务集群架构
概念 引入了负载均衡应用以集群方式运作 出现背景 单个应用不足以支持海量的并发请求高并发的
架构优缺点 优点 应用服务高可用:应用满足高可用不会一个服务出问题整个站点挂掉应用服务具备一定高性能如果不访问数据库优点应用相关处理通过扩展可以支持海量请求快速响应应用服务有—定扩展能力:支持横向扩展 缺点 数据库成为性能瓶颈无法应对数据库的海量查询数据库是单点没有高可用运维工作增多扩展后部署运维工作增多需要开发对应的工具应对快速部署硬件成本较高
架构应用原理
还是以购物网站为例可以看到应用不再是一个而是变成了多个通过负载均衡来支持海量的并发
示例如下图 对应的工作原理 读写分离/主从分离架构
概念 将数据库读写操作分散到不同的节点上数据库服务器搭建主从集群一主一从、—主多从都可以数据库主机负责写操作从机只负责读操作 出现背景 数据库成为瓶颈而互联网应用一般读多写少数据库承载压力大主要是由这些读的请求造成的那么我们可以把读操作和写操作分开
架构优缺点 优点 数据库的读取性能提升优点读取被其他服务器分担写的性能间接提升数据库有从库数据库的可用性提高了 缺点 热点数据的频繁读取导致数据库负载很高当同步挂掉或者同步延迟比较大时写库和读缺点库的数据不一致服务器成本需要进—步增加
架构应用原理
还是以购物网站为例可以看到应用不再是一个而是变成了多个数据库主机负责写操作从机负责读操作数据库主机通过复制将数据同步到从机
示例如下图
对应的工作原理 冷热分离架构
概念 引入缓存实行冷热分离将热点数据放到缓存中快速响应 出现背景 海量的请求导致数据库负载过高站点响应再度变慢
架构优缺点 优点大幅降低对数据库的访问请求性能提升非常明显 缺点 带来了缓存一致性缓存击穿缓存失效缓存雪崩等问题缺点服务器成本需要进一步增加业务体量支持变大后数据不断增加数据库单库太大单个表体量也太大数据查询会很慢导致数据库再度成为系统瓶颈
架构应用原理
还是以购物网站为例可以看到多了缓存服务器对于热点数据全部放到缓存中不常用数据再去查询我们的数据库
示例如下图 对应的工作原理 垂直分库架构
概念 数据库的数据被拆分数据库数据分布式存储分布式处理,分布式查询也可以理解为分布式数据库架构 出现背景 单机的写库会逐渐会达到性能瓶颈需要拆分数据库数据表的数据量太大处理压力太大需要进行分表为降低运维难度业界逐渐研发了分布式数据库库表天然支持分布式
架构优缺点 优点数据库吞吐量大幅提升不再是瓶颈 缺点 跨库join、分布式事务等问题这些需要对应的去进行解决目前的mpp都有对应的解决方案数据库和缓存结合目前能够抗住海量的请求但是应用的代码整体耦合在一起修改一行代码需要整体重新发布
分库分表 分布式数据库 架构应用原理
还是以购物网站为例数据库是由多个主从库或者存储集群构成支持分布式大规模并行处理
示例如下图 对应的工作原理 微服务器架构
概念 微服务是一种架构风格按照业务板块来划分应用代码使单个应用的职责更清晰相互之间可以做到独立升级迭代
出现背景
扩展性差应用程序无法轻松扩展因为每次需要更新应用程序时都必须重新构建整个系统持续开发困难一个很小的代码改动也需要重新部署整个应用,无法频繁并轻松的发布版本不可靠即使系统的一个功能不起作用可能导致整个系统无法工作不灵活无法使用不同的技术构建单体应用程序代码维护难所有功能耦合在一起小白不知道从何下手
架构优缺点 优点 灵活性高服务独立测试、部署、升级、发布独立扩展每个服务可以各自进行扩展提高容错性一个服务问题并不会让整个系统瘫痪新技术的应用容易支持多种编程语言 缺点 运维复杂度高业务不断发展应用和服务都会不断变多应用和服务的部署变得复杂同一台服务器上部署多个服务还要解决运行环境冲突的问题此外对于如大促这类需要动态扩缩容的场景需要水平扩展服务的性能就需要在新增的服务上准备运行环境部署服务等运维将变得十分困难资源使用变多所有这些独立运行的微服务都需要需要占用内存和CPU处理故障困难一个请求跨多个服务调用需要查看不同服务的日志完成问题定位 架构应用原理
还是以购物网站为例一个商城应用拆分成了多个微服务如用户服务、交易服务和商品服务相互之间协作支持整个商城的应用还增添了直播带货的应用
示例如下图
对应的工作原理 容器编排架构
概念 借助容器化技术(如docker)将应用/服务可以打包为镜像通过容器编排工具(如k8s)来动态分发和部署镜像服务以容器化方式运行
出现背景
微服务拆分细服务多部署工作量大而且配置复杂容易出错微服务数量多扩缩容麻烦而且容易出错每次缩容后再扩容又需要重新配置服务对应的环境参数信息微服务之间运行环境可能冲突需要更多的资源来进行部署或者通过修改配置来解决冲突 架构优缺点
优点 部署、运维简单快速一条命令就可以完成几百个服务的部署或者扩缩容隔离性好容器与容器之间文件系统、网络等互相隔离不会产生环境冲突轻松支持滚动更新版本间切换都可以通过一个命令完成升级或者回滚 缺点 技术栈变多对研发团队要求高机器还是需要公司自身来管理在非大促销的时候还是需要闲置着大量的机器资源来应对大促销机器自身成本和运维成本都极高资源利用率低可以通过购买云厂商服务器解决
现状 目前最流行的容器化技术是 Docker最流行的容器管理服务是 Kubernetes(K8S)应用/服务可以打包为 Docker 镜像通过 K8S 来动态分发和部署镜像。Docker 镜像可理解为一个能运行你的应用/服务的最小的操作系统里面放着应用/服务的运行代码运 行环境根据实际的需要设置好。把整个“操作系统”打包为一个镜像后就可以分发到需要部署相关服务的机器上直接启动 Docker 镜像就可以把服务起起来使服务的部署和运维变得简单。
C和Java部署到服务器的过程图示 上述过程联系现实的理解 架构应用原理 还是以购物网站为例一个商城应用拆分成了多个微服务如用户服务、交易服务和商品服务每一个微服务打包到容器之中相互协作来完成系统功能通过容器编排工具完成部署运维 对应的工作原理