首页 > 其他分享 >SpringCloud Day1 SpringCloud概述

SpringCloud Day1 SpringCloud概述

时间:2022-11-25 18:22:27浏览次数:37  
标签:负载 服务 均衡 SpringCloud Day1 概述 注册 Eureka 服务端

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),客户端通过接口去获取这些配置文件

 

标签:负载,服务,均衡,SpringCloud,Day1,概述,注册,Eureka,服务端
From: https://www.cnblogs.com/dwj-ngu/p/16918967.html

相关文章

  • SpringCloud Alibaba(一) - Nacos 服务注册与发现,OpenFeign远程调用
    1、基础项目过目介绍1.1数据库创建1.2项目模块分布1.3测试http接口调用1.3.1http接口调用配置类//http接口调用配置类@ConfigurationpublicclassRestTempla......
  • BGP 基本概述
    BGP属于边界网关路由协议是一种EGP路由协议,其主要作用在各个AS自治系统之间传递路由信息,是大型网络之间互联的路由协议。基本像我这种小网工很难接触到,但是确实这个协......
  • SpringCloud网关设计
    1网关概念Gateway是在spring生态系统之上构建的API网关服务,网关是外网进入内网的入口,对内网服务起保护作用。2网关作用(1)反向代理:为保护内网服务的安全,通常不会暴露内......
  • 【Java】java | springcloud-alibaba版本说明 | springboot对应版本
     ......
  • SpringCloud-OpenFeign-使用细节
    1.openfeign调用HttpServletRequest作为参数报错..(主要针对请求头信息透传)https://blog.csdn.net/qq_44783283/article/details/1135309102.OpenFeign传输文件(针对文件......
  • day1 idea导出项目war包
    1、File-->ProjectStructure-->Artifacts-->+号-->JavaEEAppliction:Archive-->For'firstdemowar:exploed'    Build-->BuildArtifacts-->AllArtifacts-->B......
  • day1 idea tomacat创建javaweb项目
    一、1、新建java-->javaEE-->WebApplication()  2、在web-->WEB-INF目录下新建classes和lib文件夹,classes存放编译后的文件,lib存放相关jar包,File-->ProjectStructur......
  • 操作符详解(day13)
    操作符是直接对内存里存储的值进行操作,而函数是更外层的操作方式。以操作整形变量举例:在内存中,整数都是以补码形式存储的,所以操作符可以直接操纵内存中的补码的值,而printf函......
  • MySQL数据库:6、约束的概述及语法
    Python基础之MySQL数据库目录Python基础之MySQL数据库一、约束概述1、为什么要约束2、什么是约束3、约束的分类4、查看当前表已有的约束二、约束语法及用法1、无符号2、......
  • 事件的概述以及常见事件的演示
    事件_概述概念:某些组件被执行了某些操作后,触发某些代码的执行事件:某些操作,如:单击双击 键盘按下了,鼠标移动了事件源:组件,如:按钮 文本输入框...监听器:......