SpringCloud面試題,Spring Cloud總結

 2023-10-17 阅读 24 评论 0

摘要:eureka 注冊中心,服務的注冊與發現 服務端 1.引入服務端啟動器:eureka-server 2.添加了配置 SpringCloud面試題,spring.applicaiton.name 服務名 eureka.client.service-url.defaultZone http://localhost:10086/eureka eureka.server.eviction-interval-timer

eureka

注冊中心,服務的注冊與發現

服務端

  • 1.引入服務端啟動器:eureka-server

  • 2.添加了配置

    • SpringCloud面試題,spring.applicaiton.name

      • 服務名
    • eureka.client.service-url.defaultZone

      • http://localhost:10086/eureka
    • eureka.server.eviction-interval-timer-in-ms

      • 剔除無效連接的間隔時間
    • Spring cloud gateway,eureka.server.enable-self-preservation

      • 關閉自我保護
  • 3.@EnableEurekaServer

    • 開啟eureka服務端功能

客戶端

  • 1.引入啟動器:eureka-client

  • Spring 框架?2.添加配置

    • spring.application.name

    • eureka.client.service-url.defaultZone

    • eureka.instance.lease-renewal-interval-in-seconds

      • 心跳時間
    • eureka.instance.lease-expiration-duration-in-seconds

      • 過期時間
    • eureka.client.register-with-eureka

      • 是否注冊給eureka容器
      • 默認true
    • eureka.client.fetch-registry

      • 是否拉取服務列表
      • 默認true
    • eureka.client.registry-fetch-interval-seconds

      • 拉取服務的間隔時間
  • 3.@EnableDiscoveryClient

    • 啟用eureka客戶端

ribbon

負載均衡組件

eureka、feign以及zuul已集成

配置負載均衡策略

  • <服務名>.ribbon.NFLoadBalancerRuleClassName

    • 負載均衡策略的全路徑

@LoadBalanced

  • 在RestTemplate的@Bean方法上

hystrix

容錯組件

降級

  • 1.引入hystrix的啟動器

  • 2.添加配置,超時時間的配置

  • 3.@EnableCircuitBreaker

    • 啟用熔斷組件

    • @SpringCloudApplication

      • @SpringBootApplication
      • @EnableDiscveryClient
  • 代碼

    • 局部

      • 返回值和參數列表和被熔斷的方法一致
      • 在被熔斷的方法上@HystrixCommand(fallbackMethod=“熔斷方法名”)
    • 全局

      • 返回值和被熔斷的方法返回值一致,不能有參數列表
      • 在類上@DefaultProperties(defaultFallbck=“全局熔斷方法名”)
      • 在具體的被熔斷方法上@HystrixCommand

熔斷

  • close

    • 關閉狀態
    • 所有請求都正常訪問
  • open

    • 打開狀態
    • 所有請求都無法訪問
    • 觸發:連續失敗的比例大于50%或者失敗次數不少于20
    • 維持5s的休眠時間
  • half open

    • 半開狀態

    • 釋放部分請求通過

      • 正常

        • close
      • 不正常

        • open
    • 觸發:休眠時間之后

feign

遠程調用組件

  • 集成ribbon和hystrix
  • 使代碼更加優雅

1.引入feign的啟動器

2.feign.hystrix.enable=true

  • 開啟熔斷

3.@EnableFeignClients

  • 開啟feign的功能

代碼

  • 定義一個接口

    • @FeignClient(value=“服務名”, fallback=實現類.class)
    • 方法上的注解使用的都是springMVC的注解

zuul

網關組件

  • 路由
  • 過濾器

1.引入啟動器

2.添加配置

  • 路由的配置

  • zuul.prefix

    • 路由前綴
  • 四種路由配置方式

    • zuul.routes.<路由名>.path=/service-provider/**
      zuul.routes.<路由名>.url=http://localhost:8081

    • zuul.routes.<路由名>.path=/service-provider/**
      zuul.routes.<路由名>.serviceId=service-provider

    • zuul.routes.<路由名:服務名>=/service-provider/**

    • 不配置

      • 默認服務的入口就是以服務名為前綴

3.@EnableZuulProxy

  • 開啟zuul網關組件

自定義過濾器

  • IZuulFilter

    • 默認的抽象實現類:ZuulFilter
  • filterType

    • pre
    • post
    • route
    • error
  • filterOrder

    • 執行順序,返回值越小優先級越高
  • shouldFilter

    • 是否執行run方法

    • true

      • 執行
  • run

    • 過濾器的具體邏輯
  • 四種執行順序

    • pre–>route–>post

    • 異常

      • pre或者route出現異常

        • 直接執行error–>post
      • post出現異常

        • error–>響應
      • error出現異常

        • error–>post

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/143597.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息