docker:互联网架构的演进

目录

1.前言

2.八大架构

2.1单机架构

架构图

技术案例

架构分析

2.2应用数据分离架构

架构图

技术案例

架构分析

2.3应用服务集群架构

架构图

技术案例

架构分析

2.4读写分离架构

架构图

技术案例

架构分析

2.5冷热分离架构

架构图

技术案例

架构分析

2.6垂直分库架构

架构图

技术案例

架构分析

2.7微服务架构

架构图

技术案例

架构分析

2.8容器编排架构

架构图

技术案例

架构分析


1.前言

在互联网诞生的初期只有少量的人能够上网,将服务部署在一台主机上就足够支持客户的访问,但是对着互联的发展使用人数 激增,单机架构已经承受不住大量的用户并发访问,为了解决这个问题架构开始不断的演进。

2.八大架构

2.1单机架构

应用服务和数据库服务使用一台主机

架构图

技术案例

Tomcat 是由 Apache 软件基金会下属的 Jakarta 项目开发的一款开源的轻量级 Web 应用服务器

用户想要查看商品

首先用户使用app或者浏览器访问网站的域名,经过dns转化找到服务器ip地址,使用ip地址访问到tomcat,tomcat访问数据库,数据库返回商品的信息给tomcat,一级一级返回给用户。

架构分析

优点:因为只有一台主机,所以部署简单,成本低。

缺点:有严重的性能瓶颈,数据库和应用服务相互竞争资源。

架构瓶颈:服务器太少了。

2.2应用数据分离架构

架构图

应用服务和数据库服务使用不同的服务器,服务器之间通过网络连接。

技术案例

访问商品的流程和单机架构相同,只不过mysql不在一个服务器上。

架构分析

优点:成本相对可控,性能比单机架构有提升,数据与应用分离数据容灾能力提升。

缺点:性能瓶颈,仍无法面对海量数据场景。

架构瓶颈:在大量并发访问的场景下,首先吃紧的一定是应用服务器。

2.3应用服务集群架构

架构图

引入了负载均衡,应用以集群方式运作。

因为一个应用服务扛不住了,所以由多个应用服务以负载均衡的方式一起运作。

技术案例

Nginx/LVS:负载均衡器,将应用服务均匀的分发给下层的tomcat.。

LVS大概能抗住10万级的并发,Nginx大概能抗住万级的并发,Tomcat大概能抗住千级的并发。

一个LVS可以管理10个Nginx,10个Nginx可以管理100个Tomcat。

dns:也是有负载均衡功能的,经过配置之后,将域名均衡的转为不同LVS服务器的地址。

用户想要查看商品

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的tomcat,tomcat访问mysql,mysql返回数据给tomvat,然后一层一层返回给用户。

架构分析

优点:满足高可用不会因为一个站点挂掉整个服务器挂掉,应用服务具备一定的高性能,支持横向扩展。

缺点:数据库仍是单点没有搞可用,数据库成为性能瓶颈,硬件成本增加,运维成本增加。

架构瓶颈:只有一个存储服务器,抗不住海量数据的场景。

2.4读写分离架构

架构图

将数据库读写操作分散到不同的节点上,搭建数据库主从集群,一主一从,多主多从都可以,主库负责写操作,从库负责读操作

技术案例

mycat/tddl:是一款开源的分布式数据库中间件可以将数据库读写分流。

用户想要查看商品

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的tomcat,访问mycat数据库中间件将读操作负载均衡的分流到mysql从库中。

用户想要添加商品

同上。。。。。。。访问mycat数据库中间件将写操作负载均衡的分流到mysql主库中,写完毕后将数据同步到读库中。

架构分析

优点:数据库读写性能提升,数据库有从库,可用性间接提高。

缺点:服务器成本进一步增加,热点数据的频繁获取导致数据库负载还是很高,当数据同步挂掉会出现数据不一致的问题。

架构瓶颈:有热点被频繁读取的时候数据库的负载仍然扛不住。

2.5冷热分离架构

架构图

引入的缓存数据库,将热点存储到缓存数据库中,实现热点数据的快速响应。

技术案例

redis:缓存数据库

用户想要查看热点商品

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的tomcat,获取redis中的热点数据,一层一层返回。

用户想要查看冷门商品

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的tomcat,首先访问redes发现热点数据中没有再访问mycat数据库中间件将读操作负载均衡的分流到mysql从库中,一层一层返回。

架构分析

优点:显著的降低了数据的访问,对性能提升非常明显。

缺点:服务器成本增加,带来一系列缓存问题缓存击穿,缓存雪崩等,业务体量上升之后单库,单表体量过大导致查询速度变慢

架构瓶颈:数据库单库,单表体量过大导致查询速度变慢

2.6垂直分库架构

架构图

将数据库的数据进行拆分,分布式查询,分布式存储,分布式处理,分布式数据库。

技术案例

Greenplum/tidb/tdsql:分布式数据库

用户查看商品信息

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的tomcat,tomcat访问Greenplum分布式数据库,将数据一层一层返回。

架构分析

优点:数据库吞吐量大幅度提升数据再也不是瓶颈。

缺点:跨库join、分布式事务等问题,这些需要对应的去进行解决,目前的mpp都有对应的解决方案,应用服务代码耦合度太高,改一行代码就需要重新发布。

架构瓶颈:应用服务耦合度太高

2.7微服务架构

架构图

微服务是一种架构风格,根据业务板块划分代码,使单个应用职责更加清晰。

技术案例

Spring Cloud 是一系列框架的集合,它基于 Spring Boot 构建,用于快速构建分布式系统中的一些常见模式

查看商品是哪个用户发布的

首先用户使用app或者浏览器访问网站的域名,经dns转化为第一个LVS服务器的ip或者是第二LVS服务器的ip,通过ip地址访问LVS服务器,LVS通过负载均衡算法选择下层的Nginx服务服务器,Nginx服务通过负载均衡算法选择下层的springcloud商城的主服务,访问商品的微服务,商品的微服务还会访问用户的微服务,一起去resdis集群中查找如果信息存在就返回,不存在就去冷库分布式数据库中查找,一层一层返回。

架构分析

优点:

1.灵活性高:服务独立测试、部署、升级、发布

2.独立扩展:每个服务可以各自进行扩展

3.提高容错性:一个服务问题并不会让整个系统瘫痪;

4.新技术的应用容易:支持多种编程语言,不同微服务可以使用不同编程语言,使用相同的网络协议即可。

缺点:

1.运维复杂度高:业务不断发展,应用和服务都会不断变多,应用和服务的部署变得复杂,同一台服务器上部署多个服务还要解决运行环境冲突的问题,此外,对于如大促这类需要动态扩缩容的场景,需要水平扩展服务的性能,就需要在新增的服务上准备运行环境,部署服务等,运维将变得十分困难

2.资源使用变多:所有这些独立运行的微服务都需要需要占用内存和 CPU

3.处理故障困难:一个请求跨多个服务调用,需要查看不同服务的日志完成问题定位

架构瓶颈:运维太困难

2.8容器编排架构

架构图

借助容器化技术(如docker)将应用/服务/环境打包为镜像,通过容器编排工具(如k8s)来动态分发和部署镜像,服务以容器化方式运行

技术案例

docker:应用/服务/环境打包为镜像

k8s:态分发和部署镜像,服务以容器化方式运行

架构分析

优点:

1.部署、运维简单快速:一条命令就可以完成几百个服务的部署或者扩缩容

2.隔离性好:容器与容器之间文件系统、网络等互相隔离,不会产生环境冲突

3.轻松支持滚动更新:版本间切换都可以通过一个命令完成升级或者回滚

缺点:

1.技术栈变多,对研发团队要求高

2.机器还是需要公司自身来管理,在非大促的时候,还是需要闲置着大量的机器资源来应对大促,机器自身成本和运维成本都极高,资源利用率低,可以通过购买云厂商服务器解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值