SpringCloud Day1 SpringCloud概述

SpringCloud概述。

 

Eureka: (服务注册发现)

配置文件参数:

register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务

 

Eureka  Client、 Eureka  Server:客户端和服务端, 服务端一般是Eureka本身,客户端是各种服务。 有些服务作为单纯的消费者

是不会注册到服务端的。

 

服务提供者和服务消费者:

服务提供者:服务的提供者会在启动的时候通过rest请求方式将自己注册到EurekaServer上去,同时把自己服务的元数据带过去。

服务续约:注册之后,用心跳机制来续约。

服务下线:服务下线的Rest请求发给Eureka Server进行下线操作

 

服务消费者:服务启动,发送一个rest请求给服务注册中心,来获取服务清单。

服务消费者在获取服务清单后,通过服务名可以获得具体提供服务的实例名和该实例的元数据信息。在进行服务调用的时候,优先访问同处一个Zone中的服务提供方

 

EurekaServer:服务注册中心

失效剔除机制:每隔30s(默认),对超时(默认90s)未续约的服务剔除出去

自我保护机制:EurekaServer 在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%(通常由于网络不稳定导致)。 Eureka Server会将当前的实例注册信息保护起来, 让这些实例不会过期,尽可能保护这些注册信息

 

RestTemplate:远程调用

复制代码
@RestController
public class DeptController{
  
      // 服务实例名
    private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";
  
    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping(value = "/consumer/dept/add")
    public boolean add(Dept dept) {
        return restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept);
    }
}
复制代码

RestTemplate定义了远程服务调用的规则

 

Ribbon负载均衡:

客户端负载均衡:客户端可以拿到服务清单后,通过Ribbon负载均衡在多个服务器质检根据负载均衡算法选择一个进行访问。 和RestTemplate一起使用,会在使用RestTemplate的时候自动开启Ribbon负载均衡。

服务端负载均衡:Ngnix   服务实例的清单在服务端,服务器进行负载均衡算法分配。

Ribbon是在本地进行负载均衡后访问具体服务器,Ngnix是先发送访问请求,在服务端进行负载均衡。

Ribbon还可以配置自己的负载均衡规则。

 

hystrix熔断:

可以通过失败快速返回,线程池隔离的方式避免问题的进一步升级。

Hystrix提供几个熔断关键参数:滑动窗口大小(20)、 熔断器开关间隔(5s)、错误率(50%)

  • 每当20个请求中,有50%失败时,熔断器就会打开,此时再调用此服务,将会直接返回失败,不再调远程服务。

  • 直到5s钟之后,重新检测该触发条件,判断是否把熔断器关闭,或者继续打开

 

feign:

Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign,

我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。

整合了Ribbon和Hystrix

 

Zuul:

前置拦截过滤,校验,动态路由匹配,过滤器实现。

 

Config:

Spring Cloud Config就是将配置文件放到统一的位置管理(比如GitHub),客户端通过接口去获取这些配置文件

 

posted @   NobodyHero  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示