分布式微服务架构及演变过程

微服务架构的演变:

微服务是一种松散耦合的,每个服务之间高度自治并且使用轻量级协议进行通信的可持续部署的分布式架构体系,这句话包含了微服务的特点,微服务架构和其他架构有什么区别 ? 以下是一些常见的软件架构:

一.单体应用架构: 

单体应用架构是最简单的软甲架构,常用于传统的应用软件开发以及传统Web应用。传统Web应用,一般将所有功能模块都打包成(.jar/.war),在WEB应用服务器(Tomcat、Jboss、Jetty、webShare)中部署、运行。随着业务复杂度增加、技术团队规模扩大,在一个单体应用架构维护代码,会降低开发效率,即便处理一个小小的需求,也需要将所有机器上的的应用全都部署一遍,增加运维的复杂度。

 弊端:被很多用户使用以后,就会产生一些严重的问题,CPU、硬盘有一个性能上限,假如一台只能接受5W同时访问的服务器,那假如有一年用户量暴涨到500W来访问就会出现:

1、服务器过载 CPU、内存、打满(服务器响应缓慢、宕机)

2、用户通过HTTP请求,每一次请求会发送一定数量的数据包、带宽被用尽-访问转圈圈,404无法访问 

解决方法:

1.垂直扩容

可以通过更新硬件,提升带宽

2.水平扩容

前面讲到了用户出现了500W并发访问使用垂直扩容的方法可以解决,可以试想一下这样一个场景。假如经过几年的累加,用户量达到了5000W呢

解决方法:

集群架构模式

那么就可以多开几台服务器来解决服务器的压力,但是会出现一个问题就是每个服务器的属名不一致(IP地址不一致)。用户明明在注册界面注册了但是在登录的时候查不到他注册的信息登录不了,问题是怎么导致的呢,就是不同的服务器不同的端口接收的请求不同,导致数据不同步,该怎么解决请看下面的图:

 下面不同的端口号代表一个个服务器  用户去访问只访问qq.com10.123.243.220这个端口。通过负载均衡将所有请求,均衡分配给每一台服务器。(然后老板就会说做的做的好,加薪)

二.SOA架构

当某一天使用单体架构发现很难推进需求的开发、以及日积月累的技术债时,很多企业会开始做单体服务的拆分,拆分的方式一般有水平拆分和垂直拆分。垂直拆分是把一个应用拆成松耦合的多个独立的应用,让应用可以独立部署,有独立的团

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值