当前位置: 首页 > news >正文

Spring Cloud总结

eureka

注册中心,服务的注册与发现

服务端

  • 1.引入服务端启动器:eureka-server

  • 2.添加了配置

    • spring.applicaiton.name

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

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

      • 剔除无效连接的间隔时间
    • eureka.server.enable-self-preservation

      • 关闭自我保护
  • 3.@EnableEurekaServer

    • 开启eureka服务端功能

客户端

  • 1.引入启动器:eureka-client

  • 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

http://www.taodudu.cc/news/show-1476393.html

相关文章:

  • 【机器学习:IT行业的现在与未来】技术应用与趋势探索
  • C#实现多线程的几种方式
  • 代码随想录算法训练营第二十八天|491.递增子序列
  • malloc_consolidate
  • 【Java开发面试系列】JVM相关面试题(精选)
  • 视觉识别学习笔记
  • 在此之前的博客地址
  • golang利用反射写入excel的简单工具类
  • 实习工作难点记录
  • c 结构体之位域(位段)
  • 辗转相除求最大公约数,最大公倍数
  • Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。
  • 错误:cc1: error: unrecognized command line option “-m32”
  • 在编写mini2440 helloworld驱动遇到的问题
  • [leetcode] Median of Two Sorted Arrays 寻找两个有序数组的中位数
  • [leetcode] Reverse Integer 反转一个整数
  • [leetcode] Palindrome Number 回文数判断
  • [leetcode] Longest Common Prefix 字符窜最长公共前缀判断
  • [leetcode] Single Number 查找数组中的单数
  • [leetcode] Power of Two 判断一个数是否是2的平方
  • [leetcode] Max Points on a Line 判断最多有多少个点在同一条直线上
  • 使用selenium webdriver进行元素定位
  • 一个动态增长的栈实现
  • sublime cscope使用方法
  • [leetcode] 24. Swap Nodes in Pairs
  • sublime text常用快捷键整理
  • kmp算法字符串匹配C语言实现
  • VLC设置串流的TTL值
  • [leetcode]328. Odd Even Linked List
  • [leetcode]326. Power of Three(c语言)
  • [leetcode ]221. Maximal Square c语言
  • [leetcode]84. Largest Rectangle in Histogram c语言
  • [leetcode]36. Valid Sudoku c语言
  • python 中 print 函数用法总结
  • python 装饰器粗浅理解
  • ubuntu 15.04安装VMware11