springcloud
2020-02-14 10:37:29 131 举报
AI智能生成
springcloud思维导图
作者其他创作
大纲/内容
Hystrix容错处理组件
设计目标
通过客户端库对延迟和故障进行保护和控制
在一个复杂的分布式系统中停止级联故障
快速失败和迅速恢复
在合理的情况下回退和优雅地降级
开启近实时监控、告警和操作控制
Hystrix Dashboard
定义:根据系统一段时间内发生的请求情况来展示的可视化面板
异常机制和处理
FAILURE:执行失败,抛出异常
TIMEOUT: 执行超时
SHORT_CIRCUITED: 断路器打开
THREAD_POOL_REFJECTED:线程池拒绝
SEMAPHORE_REJECTED:信号量拒绝
Hystrix线程调整和计算
Hystrix请求缓存
Hystrix线程传递及并发策略
Zuul网关组件
功能
静态路由配置
服务屏蔽与路径屏蔽
敏感头信息
重定向问题
重试机制
权限
Zuul + OAuth2.0 +JWT
限流
可以直接使用限流库:spring-cloud-zuul-ratelimit
动态路由
灰度发布
基于Eureka元数据的一种方式
文件上传
Filter
pre: 按照规则路由到下级服务之前执行
route: 路由动作的执行者
post: 是在源服务返回结果或者异常信息发生后执行的
error: 全局异常处理
多层负载
OpenResty(nginx+lua)进行多层负载
Spring Cloud Config
概述:集中化外部配置中心
Eureka:服务发现组件
Eureka Server REST API
Eureka 核心类
InstanceInfo: 注册的服务实例
LeaseInfo: 应用实例的租约信息
ServiceInstance: 实例信息的抽象接口
InstanceStatus:标识服务实例的状态。枚举类
服务的核心操作
LeaseManager 定义了服务写操作相关的方法
Register(): 注册服务实例信息
Cancel(): 删除服务实例信息
Renew(): 用于与Server短进行心跳操作,维持租约
evit():剔除租约过期的服务实例信息
LookupService 定义了Client从服务中心获取服务实例的查询方法
getApplication() :获取应用信息
getInstancesById(): 根据应用id获取服务实例
getNextServerFromEureka() :获取下一个服务实例
Eureka的设计理念
AP优于CP
Peer to Peer 对等复制
Zone及Redion的设计
Self Preservation设计
Eureka参数调优及监控
Feign 声明式、模板化的Http客户端
特性
可插拔的注解支持
Feign注解
JAX-RS注解
支持可插拔的HTTP编码器和解码器
支持Hystrix和它的Fallback
支持Ribbon的负载均衡
支持HTTP请求和响应的压缩
基础功能
FeignClient注解
开启GZIP压缩
Feign支持属性文件支持
日志
超时设置
实战运用
Feign默认Client的替换
使用HTTP Client替换Feign默认Client
使用okhttp替换Feign默认Client
Feign的Post和Get的多参数传递
Feign的文件上传
解决Feign首次请求失败的问题
Feign 返回图片流处理方式
Feign调用传递Token
Ribbon 负载均衡组件
负载均衡分类
集中式负载均衡(服务端负载均衡)
Nginx
进程内负载均衡(客户端负载均衡)
Ribbon特性
负载均衡策略
RandomRule:随机策略
RoundRobinRule: 轮询策略
RetryRule: 重试策略
BestAvailableRule: 最低并发策略
AvailabilithFilteringRule:可用过滤策略
ResponseTimeWeightedRule:响应时间加权策略
ZoneAvoidanceRule: 区域权衡策略
Ribbon超时与重试
Ribbon的饥饿加载
利用配置文件自定义Ribbon客户端
可以脱离Eureka使用
收藏
收藏
0 条评论
下一页