目录
1、微服务
2、分布式
3、集群
4、分布式于集群关系
5、软件架构演变
(1)单一应用架构
(2)垂直应用架构
(3) 分布式服务架构
(4)流动计算架构
6、RPC
7、高并发
(1)概念
(2)衡量指标
8、高可用
(1)概念
(2)主—备方式
(3)双主机方式
9、注册中心
10、负载均衡
(1)概念
(2)策略
11、服务雪崩
12、熔断
13、限流
14、网关
15、服务跟踪
16、弹性云
微服务是将当个应用程序开发为一组小服务方法,每个服务在自己进程中运行,并与轻量级进行通信,每个服务的开发语言可以不同。这些服务围绕业务进行开发,相互之间独立部署。
如:购买商品业务,可以开发出支付服务、库存减少服务、订单添加服务,购买尚品依次调用这些服务完成业务逻辑,这些服务相互独立,可以使用不同语言开发。
分布式系统是若干独立计算机的组合,这些计算机相对于用户来说是单个相关系统。
如:生活中的餐厅看做分布式系统,餐厅中员工洗菜,厨师炒菜、服务员上菜,厨师炒菜需要等员工洗完菜,服务员上菜需要等厨师炒菜完,相互之间有依赖关系,但做的工作又相互独立。
集群指将几台服务器集中起来,共同实现统一业务。
如:生活中餐厅,有员工洗菜,厨师炒菜、服务员上菜,由于人流量大,可以多请几个服务员共同上菜,这几个服务员就相当于集群,共同完成上菜。
分布式每个节点都可以做集群,而集群并不一定是分布式。
如:生活中的餐厅看做分布式系统,餐厅中员工洗菜,厨师炒菜、服务员上菜,厨师炒菜需要等员工洗完菜,服务员上菜需要等厨师炒菜完,相互之间有依赖关系,但做的工作又相互独立。期间可以多请几个服务员共同上菜,即集群。
网站流量少时,只需一个应用,将所有功能部署在同一台服务器上,以减少节点部署和成本,此时数据库增删改查是关键,如下图:
当访问量逐渐变大时,单一应用增加机器加速度越来越小,此时将应用拆分为互补干扰的多个应用,以提升效率,此时用于加速页面的前端框架是关键,如下图:
当垂直应用越来越多时,应用之间交互必不可少,将核心业务抽取出来,作为独立服务,形成稳定服务中心,实现业务复用率,此时用于整合的分布式服务框架是关键,如下图:
当服务越来越多时,小服务资源浪费严重,此时需要增加一个调度中心基于访问压力管理集群容量,提高集群利用率,此时用于管理集群的调度中心是关键,如下图:
RPC指远程调用过程,是一种进程通信方式,允许程序调用另外一个地址空间的过程,而不用程序编码显示这个调用过程。
同一时间内,有大量用户同时访问同一个接口,经常发生在有大量活跃·用户聚集高的业务中。
如:双十一秒杀活动,在秒杀开始时有大量请求进行秒杀操作
①响应时间:请求做出响应时间,即请求放回所用时间。
如:用户搜索资料时,资料显示到界面展示给用户所用时间即响应时间
②吞吐量:系统在单位时间内处理的请求数。
③QPS:每秒请求数。
④TPS:每秒事务数。
⑤并发用户数:系统使用正常情况下,可以接受的最大用户数量。
如:一个系统并发用户数为100,当用户超过100时,系统则会出现问题。
通过设计减少服务不可用时间,提高服务可用性。
一台服务器处于业务激活状态,另外一台服务器处于该业务备用状态,对于访问量大的业务,通常会将主服务器和备用服务器进行集群。
如:支付业务,主服务器宕机,备服务器会立马变为主服务器,供用户继续支付功能。
两种不同业务分别在两台服务器上互为主备状态。
如·:订单业务在服务器1上, 支付业务在服务器2上,服务器1同时为支付业务的备份服务器,服务器2同时为订单业务的备份服务器。
保存某个服务所在地址信息,方便调用者实时获取其他服务信息。
如:房中介可以看为注册中心,房东在房中介注册出租房信息,房客在房中介注册租房信息,这样房客可以在房中介查看房屋信息,进而租房。
动态以某种策略将请求分发给比较空闲服务器。
①轮询:将请求依次轮流发给服务器。
②加权轮询:按照权重将请求发给服务器,权重大,分发请求越多。
③随机:随机将请求分发给服务器。
④哈希:用户请求指定分发给指定服务器,相同请求访问的服务器相同。
服务之间复杂调用,一个服务不可用,导致全体服务不可用,如下图:
某个服务频繁不可用时,直接将其熔断,返回事先准备好的虚拟值,如下图:
限制某个服务每秒调用本服务的频率。
如:若黑客使用程序频繁访问系统服务,会使系统崩溃,这时通过限流,减少对服务的访问量,保护系统。
网关作为内网与外网的入口,起着所有服务路由转换工作,对系统内网起保护作用。
如:我们访问系统服务时,一般是暴露网关ip,隐藏服务ip,对服务起保护作用。
追踪服务调用链,记录整个系统执行过程。
动态扩容,压榨服务器闲时时间
如:淘宝双十一活动,此时1用户访问量巨大,会多配置多台服务器,等待高峰期过,立马恢复原有服务器数量。
喜欢的小伙伴可以关注我的springCloud专栏,持续更新~