SpringCloud

SpringCould

1.单体,分布式,集群的概念:

-单体的应用:所有的业务模块都是放在一个项目中写的,并没有进行拆分 -单体的系统: 应用和支持应用的组件(数据库,ES)都部署到同一个机器称为单体的系统. -分布式应用: 将业务拆分,在多台机器上进行部署. -分布式系统: 应用和支撑引用的组件部署到多台机器,完成功能需要依赖分布在不同机器上的组件才能完成.

  • 集群: 将应用/系统,拷贝,同时提供功能. 一般需要配合负载均衡使用.

2.什么是微服务?

  • 将应用拆分成若干个小的模板,每个模板独立开发,部署,测试. 相互之间通过网络进行调用.

3.什么是SpringCloud,和SpringBoot有什么关系?

  • SpringBoot专注于快速方便的开发单个个体微服务。

  • SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务

  • SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系

  • SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架

 

 

4.注册中心功能

常见的注册中心:Zookeeper,Eureka,Consul,Nacos

  • 服务和服务之间需要进行远程调用,注册中心管理URL和端口信息.

  • 服务启动的时候需要往注册中心注册IP和端口,同时拉取服务列表到本地缓存中。

  • 进行远程调用的时候读取本地缓存,拼接成URL,使用RestTemplate调用

  • 实现动态感知机器的上下线。 基于心跳包的机制,服务每个5秒会往注册中心发送心跳包,注册中心内部会有定时器扫描服务列表

5.负载均衡ribbon

  • 在服务的生产者进行集群的情况下,服务器调用者可以实现负载均衡.

  • 根据远程调用的名称,在本地的缓存列表中,根据配置的负载均衡的规则,找到具体的IP和端口,然后进行调用

  • 内部自动实现的,不需要我们做任何操作,属于客户端的负载均衡

img

 

6.Feign远程调用工具

  • 远程调用服务像调用本地代码一样。

  • 使用动态代理+反射进行URL拼接,然后使用ribbon,进行负载均衡

 

7.服务器的雪崩

  • 由于服务和服务之间存在调用关系,由于某一个服务出问题,导致其他服务调用该服务的时候出现阻塞,最终导致资源都被耗尽,从而导致一大批服务不可用

  • 引入如下机制避免雪崩问题

    • 超时机制 :在上游服务调用下游服务的时候,设置一个最大响应时间,如果超过这个时间,下游未作出反应,就断开请求,释放掉线程。

    • 隔离机制:上游的进程分成几部分别给不同的下游进程,这样一旦某个下游进程挂掉了也不会把2上游进程消耗完

    • 限流机制:限流就是限制系统的输入和输出流量已达到保护系统的目的。为了保证系统的稳固运行,一旦达到的需要限制的阈值,就需要限制流量并采取少量措施以完成限制流量的目的。

    • 熔断机制: 在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断。

      熔断的三种状态:熔断关闭状态,熔断开启状态,半熔断状态

    • 降级机制: 降级其实就是为服务提供一个兜底方案,一旦服务无法正常调用,就使用兜底方案。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值