Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix

1.Gateway——网关

API网关相当于微服务集群的统一入口,封装了系统的内部架构。他的职责是:

  • 身份验证
  • 负载均衡
  • 监控
  • 缓存

通过配置,

核心:所有的客户端、消费端,都通过统一的网关接入各个微服务。

2.Nacos

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。

  • 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
  • 可用性(A):保证每个请求不管成功或者失败都有响应。
  • 分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作。
    Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第1张图片
    官网介绍:Nacos帮助发现、配置、管理微服务。
  • 服务发现
  • 服务配置
  • 服务管理

实现服务提供者、服务消费者之间的解耦。

2.1.什么是Nacos = 注册中心 + 配置中心

它是一个注册中心组件,也是一个配置中心。

2.2.Nacos的发展历程

2018年发布首个版本,直到现在发展到支持大规模生产。

2.3.Nacos能做什么

1.服务注册发现、健康检查

Nacos支持基于DNS和RPC的服务发现,服务端可以通过SDK、API进行服务注册,相应的消费者可以使用DNS或者Http查找的方式获取服务列表。
Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第2张图片

2.动态配置服务

接触过Spring Cloud应该对config有所了解,那么配置中心也就很好理解。
Nacos支持动态的配置管理,将服务的配置信息分环境、分类别外部管理,支持热更新
与Config不同,Nacos的配置信息存储在数据库中,支持配置信息的监听和版本回滚。

Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第3张图片

3.Ribbon——负载均衡

1.什么是Ribbon?

微服务环境中,常常同一个服务有N多实例,我们不希望所有调用都涌向1个实例,这个时候就要用到负载均衡。
只需要使用@LoadBalance注解和其他配置(暂不细讲),不同实例可以通过调节权重来改变调用的优先级。

spring.cloud.nacos.discovery.weight = 浮点数

2.负载均衡的算法

  • 1.轮询算法
  • 2.随机策略
  • 3.响应时间加权重策略
    • 根据本服务各个实例的响应时间来分配权重,响应时间越长的服务,权重越低,那么被调用的概率也就越低。相反,响应时间越短的服务,权重越高,被调用的概率也就越高

    • 响应时间加权重策略的实现分为两步

      • 1、WeightedResponseTimeRule实现类中默认情况下每隔30秒会统计一次每个服务的权重,在此30秒内,用的是轮询策略
      • 2、30秒之后,会根据统计的结果来分配每个实例的权重,然后根据权重来分配调用次数。

4.Feign

以接口的形式,来远程调用其他微服务。
Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第4张图片

1.尚医通案例

微服务service-order——>调用——>微服务service-user中的方法

1.被调用方:service-user

Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第5张图片

2.定义Feign接口

Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第6张图片

3.调用方:service-order

Cloud——Gateway、Nacos、Ribbon、Feign、Hystrix_第7张图片

5.Hystrix

1.是什么?

  • Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如:超时、异常等等,Hystrix能保证在一个依赖出问题的情况下,不会导致整体服务的失败,避免级联故障,提高分布式系统的弹性。
  • 断路器本身是一种开关装置,当某个服务单元发生故障时,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个服务预期的、可处理的备选响应(Fallback),而不是长时间等待或者抛出调用方无法处理的异常,可以保证调用方的线程不会被长时间、不必要的占用,避免了故障在分布式系统中的蔓延、甚至雪崩。

2.能干嘛?

  • 服务降级
  • 熔断
  • 限流
  • 接近实时的监控

1.

你可能感兴趣的:(java框架SSM面试,线性代数,矩阵)