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:8081zuul.routes.<路由名>.path=/service-provider/**
zuul.routes.<路由名>.serviceId=service-providerzuul.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
Spring Cloud总结相关推荐
- Spring cloud 微服务docker容器化最佳实践
Spring cloud 是当下最炙手可热的微服务套件,我们将介绍如何整合Docker容器达到高效快捷的构建发布 采用了dockerfile-maven-plugin插件发布镜像到远程docker主机 ...
- Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...
- Spring Cloud下微服务权限方案
背景 从传统的单体应用转型Spring Cloud的朋友都在问我,Spring Cloud下的微服务权限怎么管?怎么设计比较合理?从大层面讲叫服务权限,往小处拆分,分别为三块:用户认证.用户权限.服务 ...
- 玩转Spring Cloud之配置中心(config server config client)
玩转Spring Cloud之配置中心(config server &config client) 本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...
- spring cloud微服务治理eureka、hystrix、zuul代码例子
spring cloud微服务中台服务代码例子,包括eureka.hystrix.zuul https://github.com/birdstudiocn/spring-cloud-sample/tr ...
- 原 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f8-bus/ 本文出自方志朋的博客 转载请标明出处: Spr ...
- 快速构建Spring Cloud工程
spring cloud简介 spring cloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境 ...
- spring cloud微服务分布式云架构--hystrix的使用
hystrix主要作用在服务消费者,进行应用的保护,当请求的服务请求超时时,做出相应的处理,避免客户端一直进行请求等待,避免在高并发的情况出现服务器死机(请求过多,内存不足) 接下来的通过一个案例对h ...
- Spring Cloud构建分布式电子商务平台:服务消费(基础)
使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient.这里我们即将介绍的LoadBalance ...
- (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点
spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...
最新文章
- oracle, group by, having, where
- 电视机检测大巴徘徊在英格兰的大街上
- 异常导致循环退出_Java异常有哪些?异常怎么处理?
- Ethernet/IP 学习笔记三
- 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM
- 为什么async/await方法不能有lock或Monitor
- java并发初探ConcurrentSkipListMap
- 网管必学之交换机VLAN的配置
- 2017哈尔滨ACM CCPC-final 总结
- 阅读《黑客与画家》有感——Hackers and Painters
- ROS下面调用自定义的头文件和.cpp/.so文件(亲测有效)
- pc端微信二维码支付流程及问题排查
- linux服务器端口的状态,Linux查看端口状态及关闭端口方法
- 什么是模型管理和模型运维?
- 2019 春季算法工程师实习生招聘历程
- NCRE公共基础知识(一) 计算机系统
- 提升HTML5的性能体验系列之一 避免切页白屏
- Vitamio的踩坑+填坑
- html科学计算器,vue.js实现的经典计算器/科学计算器功能示例
- 排列组合思维导图_思维导图:进阶高效能人士的思维工具