跳转至

SpingCloud微服务框架学习

学习SpingCloud微服务框架时的笔记,视频地址

一些常见错误

  1. 当远程调用由本地转为向consul注册中心注册时,由于consul天生支持负载均衡,如果远程调用不添加远程调用支持就会报错运行时异常:I/O error on GET request for "http://cloud-payment-service/pay/get/1": cloud-payment-service需要修改配置文件,给远程调用添加负载均衡支持。@LoadBalanced

    底层的原因是: 引入微服务名字,按照微服务名称调用,默认后面是多个微服务,默认负载均衡和轮询,所以必须给 restTemplate 加上负载均衡

  2. 如果要用docker运行consul的话,如果要启用持久化配置

  3. 需要把consul设置为server模式,并且把volume挂载到本地(也可以不指定位置,由docker自动分配)
  4. docker run -d -p 8500:8500 -P -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' - -name=consul consul:1.15.4 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
    [详情请见此](https://www.cnblogs.com/lfzm/p/10633595.html)
    

顺便听到的面试题

  1. CAP
  2. 什么是CAP?

    1. CAP即:

      Consistency(一致性)

      Availability(可用性)

      Partition tolerance(分区容忍性)

      这三个性质对应了分布式系统的三个指标:

      20240406114035

      而CAP理论说的就是:一个分布式系统,不可能同时做到这三点。

      最多只能同时较好的满足两个。

      CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

      因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

      CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

      CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。

      AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

  3. 几种注册中心的异同 20240406115432

  4. 客户端和服务端负载均衡的区别 20240407064356

一些概念

  1. 什么是服务熔断和服务降级
  2. 服务熔断是一种微服务架构中常用的保护机制,用于防止分布式系统中的雪崩效应。当一个微服务出现故障或不可用时,服务熔断会迅速地将请求转发到备用方案,而不是无限制地等待或重试导致整个系统负载过大。这样可以有效地保护系统免受故障服务的影响,提高系统的稳定性和可用性。12。在互联网系统中,服务熔断是指当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护自己以及系统整体的可用性,可以暂时切断对下游服务的调用34。
  3. 服务降级是指在系统负载过大或者出现异常情况时,临时关闭系统的部分功能,从而保证核心功能的正常运行。在微服务架构中,通过服务降级可以有效地保护系统的核心功能不受外部压力的影响,确保用户可以持续地使用系统的基本功能。服务降级是一种常见的降级技术,用于在服务出现故障或不可用时切换到降级模式,返回预设的默认值或错误信息。通过服务降级,可以保证系统的其他部分可以正常工作,而不会因为某个服务的故障而导致整个系统的不可用。123
  4. 熔断和降级是两个完全不同的东西。熔断说的是对服务的跳闸这个逻辑。服务降级说的是跳闸之后提供服务的逻辑
  5. 断路器circuitBreaker的一些认识
  6. 断路器通过滑动窗口来存储和统计调用的结果,有基于调用数量和基于时间的统计方式
  7. 还有两钟特殊状态disabled始终允许访问、Forced_open始终拒绝访问
  8. 断路器是装在消费者侧
  9. 服务降级后就算是正确的请求也不能用,要等断路器合上
  10. 舱壁的作用是提供隔离,用于限制并发执行的数量

评论