Docker 初识

  • docker 知识分布
    • 亿级高并发架构演进
      • 目标:了解每种技术架构以及如何演进的,熟悉 docker 在架构中的核心作用
      • 八大架构演进
        1. 单机架构-->适合小公司
          • 简介:应用服务(进程 a)和数据库服务(进程 b)共用一台服务器
          • 出现原因:出现在互联网早期,访问量比较小,单机足以满足需求
          • 架构工作原理:以电子商场为例,可以看到通过应用(划分了很多模块)和数据库在单个服务器上协作完成任务运行
          • 技术案例
          • 架构优缺点
            • 优点:部署简单、成本低
            • 缺点:存在严重的性能瓶颈、数据库和应用互相竞争资源-->本质就是用户量的提升导致性能和使用资源不协调了
        2. 应用数据分离架构
          • 简介:应用服务(进程 a)和数据库服务(进程 b)分别使用不同服务器
          • 出现原因:为了解决单机架构的缺点
          • 以电子商场为例,可以看到用于(划分多个模块)和数据库在各自服务器上通过网络协作完成业务运行
          • 技术案例
          • 架构优缺点
            • 优点:成本相对可控、性能比单机架构提升、数据库单独隔离,不会因为应用服务把数据库搞坏
            • 缺点:成本高、性能有瓶颈,无法应对海量并发
        3. 应用服务集群架构
          • 简介:引入了负载均衡(给请求分配适合的应用),应用以集群方式运作
          • 出现原因:为了解决应用架构的单个应用不足以支持海量的并发请求,高并发的时候站点响应变慢问题
          • 架构工作原理:以电子商场为例可以看到应用不再是一个,而是变成了多个,通过负载均衡来支持海量并发
          • 技术案例
          • 架构优缺点
            • 优点:应用服务高可用:应用满足高可用,不会一个服务出问题整个站点挂掉;应用服务具备一定高性能:如果不访问数据库,应用相关处理通过扩展可以支持海量的快速请求;应用服务局域一定扩展能力:支持横向扩展
            • 缺点:数据库成为性能瓶颈,无法应对数据库的海量查询;数据库是单点,没有高可用;运维工作增多,扩展后部署运维工作增多,需要开发对应的工具应对快速部署;硬件成本高
        4. 读写分离/主从分离架构
          • 简介:将数据库读写操作分散到不同节点,数据库服务器搭建主从集群,一主一从,一主多从都可以,数据库主机负责读写操作,从机只负责读操作
            • 只有一主是因为要确保数据的一致性
          • 出现原因:应用集群架构出现了数据库上的瓶颈,而互联网应用一般读多写少,数据库承载压力大,主要是由这些读者请求造成的,那么我们可以把读操作和写操作分开
          • 架构工作原理:以电子商场为例,可以看到数据库服务器不再是一个,而是变成了多个,数据库主机负责写操作,从机负责读操作,数据库主机通过复制将数据同步到从机
          • 技术案例
          • 架构优缺点
            • 优点:数据库读取性能提升;读取被其他服务器分担,写的性能间接提升;数据库有从库,数据库的可用性提高了
            • 缺点:热点数据的频繁读取导致数据库负载高;当数据的同步功能挂掉,或者数据的同步延迟大,写库和读库数据不一致;服务器成本进一步提高了
        5. 冷热分离架构
          • 简介:引入缓存,实行冷热数据分离,将热点数据放到缓存中达到快速响应效果
          • 出现原因:主从分离架构存在海量的请求导致数据库负载过高,站点响应再度变慢
          • 架构工作原理:以电子商城为例,可以看到多了缓存服务器,对于热点数据全部放到缓存服务器的缓存(主要是内存)中,不常用数据再去查询我们的数据
            • 热点数据库新增的数据写入要和主数据库数据写一样的数据,但要注意二者只有两种情况:同时成功/同时失败
          • 技术案例
          • 架构优缺点
            • 优点:大幅度降低对数据库的访问请求,性能提升非常明显
            • 缺点:带来了缓存一致性,缓存击穿,缓存雪崩等问题;服务器成本进一步增加;业务体谅支持变大后,数据不断增加,数据库单库太大,单个表体谅也太大,数据查询变慢,导致数据库再度成为系统的瓶颈
        6. 垂直分库架构
          • 简介:数据库的数据被拆分,数据库数据分布式存储,分布式处理,分布式查询,也可以理解成分布式数据架构
            • 数据库软件基础的进阶软件就是分布式数据库软件
          • 出现原因:单机的写库会逐渐到达性能瓶颈,需要拆分数据库,数据表的数据量太大,处理压力太大,需要进行分表,为降低运维难度,业界逐渐研发了分布式数据库,库表天然支持分布式
          • 架构工作原理:以电子商城为例,数据库是由多个主从库或者存储集群构成,支持分布式大规模并行处理
          • 技术案例
          • 架构优缺点
            • 优点:数据库吞吐量大幅度提升,不再是瓶颈
            • 缺点:跨裤 join、分布式事务等问题,这些需要对应的去进行解决,目前的 mpp 都有对应的解决方案;数据库和缓存结合目前能够扛住海量的请求,但是应对代码整体的耦合在一起,修改已涵盖吗需要整体发布--->耦合太强
        7. 微服务架构
          • 简介:微服务是一种架构风格,按照业务板块划分应用代码,使单个应用的职责更加清晰,相互之间可以做到独立升级迭代
          • 出现原因:扩展性差:应用程序无法轻松扩展,因为每次需要更新应用程序时,都必须重新构建整个系统;持续开发困难:一个很小的代码改动,也需要重新部署整个应用,无法频繁并轻松的发布版本;不可靠:系统的一个功能不起作用,整个系统就面临无法工作;不灵活:无法使用不同技术构建单体应用;代码维护艰难:所有功能耦合在一起,新人不知如何下手
          • 架构工作原理:
          • 技术案例
          • 架构优缺点
            • 优点:灵活性高:服务独立测试、部署、升级、发布;独立扩展:每个服务可进行自己扩展;容错率提高:一个服务并不会导致整个系统瘫痪;新技术的应用容易:支持多种编程语言
            • 缺点:运维复杂度高:业务不断发展,应用和服务都会不断变多,应用和服务的部署很复杂,同一台服务器部署多个服务还需要解决运行环境冲突的问题,此外,对于如大促这类需要动态扩展与缩容的场景,需要水平扩展服务的性能,就需要为新增服务准备运行环境,部署服务等,运维将变得十分困难;资源使用变多:所有这些独立运行的微服务都需要占用 cpu;处理故障困难:一个请求跨多个服务调用,需要查看不同服务日志完成问题定位
        8. 容器编排架构
    • docker 使用实战
      • 容器虚拟化技术详解
      • docker 生态、架构及组成部分
      • 多容器编排详解
    • docker 的关键技术和核心实现原理
相关推荐
想不明白的过度思考者1 小时前
Spring Web MVC从入门到实战
java·前端·spring·mvc
SunnyDays10111 小时前
Java 高效实现 PPT 转 PDF
java·ppt转pdf
IUGEI1 小时前
【后端开发笔记】JVM底层原理-内存结构篇
java·jvm·笔记·后端
合作小小程序员小小店1 小时前
网页开发,在线%宠物论坛管理%系统,基于eclipse,html,css,jquery,servlet,jsp,sql server数据库。
java·sqlserver·eclipse·jdk·html·intellij-idea
java1234_小锋1 小时前
简述Mybatis的插件运行原理?
java·开发语言·mybatis
i***39581 小时前
Springboot中SLF4J详解
java·spring boot·后端
z***94841 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
BG8EQB2 小时前
Docker 极简入门:从零到实践的全攻略
运维·docker·容器
p***95002 小时前
spring Profile
java·数据库·spring