Spring Cloud(2.0)能力大致列表
微服务九大特性
出自Martin Fowler的《Microservices》
- 服务组件化
- 按业务组织团队
- 做“产品”的态度
- 智能端点与哑管道
- 去中心化治理
- 去中心化管理数据
- 基础设施自动化
- 容错设计
- 演进式设计
Spring Boot特性
- 支持main方法直接拉起嵌入式web容器
- 本地配置方式更友好,支持占位符 支持profile,支持启动参数覆盖等,支持自动配置
- 支持自动装配等
Eureka的特性
- 服务发现的server与client,即支持注册与发现能力。
高可用,可以两个(或以上)节点相互备份,通过eureka.client.serviceUrl.defaultZone配置其他两个节点的url。server既是server也是client。- 通过注解启用注册中心server端能力
EnableEurekaServer - 需要注册的provider端只要在classpath下放spring-cloud-starter-netflix-eureka-client相关依赖,那么provider就可以自动注册到eureka注册中心。当然了需要在配置文件中配置eureka服务的url地址,配置项的key是eureka.client.serviceUrl.defaultZone。
- server支持配置多长时间扫描一次失效服务
- client端支持配置多长时间给server发一次心跳,支持配置多长时间没有收到心跳就移除服务列表
- 注册与发现时支持密码鉴权
- 支持多注册中心分组
Ribbon特性
- 客户端负载均衡器,客户端自己维护要访问的服务端清单,比如来自于注册中心
- 提供spring-cloud-starter-netflix-ribbon artifact ID 用于引入ribbon
- 提供ribbon+RestTemplate的客户端负载均衡方式,那当然也提供了客户端。
- 用心跳去维护服务端清单的健康行,支持弹性失败
- 多种可插拔负载均衡规则: 轮询,随机,区域感知轮询,响应时间权重,具体参加com.netflix.loadbalancer.IRule的实现
- 支持ribbon.MaxAutoRetries 最大重试次数配置
- 支持配置是否所有操作都能重试
- 支持配置 刷新服务端列表的时间
- 支持配置读超时 与 连接超时 (针对HttpClient)
- 支持配置初始化的服务端列表
- 支持自定义RibbonClient
- 支持自定义负载均衡策略
Netflix ribbon自己的wiki写的更清晰一些。
Hystrix特性
- 支持用spring-cloud-starter-netflix-hystrix 和 EnableCircuitBreaker 注解完成hystrix引入
- 支持指定fallBack时的方法,方法参数与服务方法参数相同(也就是支持参数传递)
- 支持 全局默认配置 动态全局配置 实例默认配置 实例动态配置 四个层次的配置覆盖能力
- 支持用execution.isolation.strategy配置隔离策略,支持线程(默认)和信号量方式的隔离
- 支持用execution.isolation.thread.timeoutInMilliseconds指定线程执行多长时间超时然后出发fallback,默认值1000ms
- 支持用execution.timeout.enabled配置是否需要启用线程执行超时机制,默认true
- 支持用execution.isolation.thread.interruptOnTimeout指定线程执行超时后是否终端,默认是true
- 支持用execution.isolation.thread.interruptOnCancel指定取消发生时是否要终端线程,默认false
- 支持用execution.isolation.semaphore.maxConcurrentRequests配置信号量模式下的最大并发请求数,默认10
- 支持fallback.isolation.semaphore.maxConcurrentRequests在信号量模式下callback最大并发请求数, 默认10
- 支持用fallback.enabled 指定是否启用fallback,默认true
- 支持用circuitBreaker.enabled 指定是否启用断路器 默认true
- 支持用circuitBreaker.requestVolumeThreshold配置 一个滑动窗口内 多少个请求失败后再启用断路器,默认是20
- 支持用circuitBreaker.sleepWindowInMilliseconds配置断路器被触发后生效多少时间,默认5s
- 支持用circuitBreaker.errorThresholdPercentage 配置失败百分比达到多少时启用断路器并触发fallback逻辑
- 支持用circuitBreaker.forceOpen配置在所有服务失败时是否强制开启断路器,默认是false
- 支持用metrics.rollingStats.timeInMilliseconds配置时间窗口时长(断路器要根据单位时间内的失败数量或者比率来决定是否启用),默认10s
- 支持用metrics.rollingStats.numBuckets设置桶的数量,默认是10
- 支持用requestCache.enabled配置是否启用缓存,在command有getCacheKey() 方法是默认启用此特性。 用@CacheResult注解配合@HystrixCommand注解可以开启缓存,默认是所有方法参数作为key,也可以通过cacheKeyMethod制定getkey方法,也可以使用@CacheKey注解加载服务方法的参数上作为缓存的key,用@CacheRemove注解关闭缓存。 可以参见这里
- 支持请求合并。 支持maxRequestsInBatch配置合并批次中的请求数。 支持timerDelayInMilliseconds配置延迟时间,默认10ms。
- 支持线程池相关属性配置。
21.支持dashboard
所有的详细配置可参见这里和这里
Feign特性
- 支持用定义接口的方式替换了写代码实现远程client调用的代码
- 支持从请求header中拿参数作为调用远程服务的请求参数
- 支持用ribbon和hystrix实现负载均衡与服务降级
- 支持client的日志级别配置
Zuul特性
- 支持转发,支持转发路由规则配置
- 支持请求过滤,ZuulFilter,自带了多种实现
- 支持动态路由配置,需要配合spring cloud使用
- 支持动态过滤器,groovy脚本
config特性
- 可以对接git、svn、本地文件存储
- 支持高可用,用eureka或者config server都指向同一git仓库
- 支持配置项加密,支持密钥配置
- 支持动态刷新配置
Spring Cloud(2.0)能力大致列表的更多相关文章
- Spring Cloud的子项目,大致可分成两类
Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目:第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cl ...
- Spring Cloud 2020.0.0正式发布,再见了Netflix
目录 ✍前言 版本约定 ✍正文 Spring Cloud版本管理 与Spring Boot版本对应关系 当前支持的版本 阻断式升级(不向下兼容) 1.再见了,Netflix Netflix组件替代方案 ...
- Spring Cloud 2020.0.0 正式发布,全新颠覆性版本!
Spring Cloud 2020.0.0 没错,Spring Cloud 2020.0.0 正式发布了: 感谢Java技术栈群友通知,想入群的在公众号Java技术栈后台回复:wx,正在使用 Spri ...
- 最新最简洁Spring Cloud Oauth2.0 Jwt 的Security方式
因为Spring Cloud 2020.0.0和Spring Boot2.4.1版本升级比较大,所以把我接入过程中的一些需要注意的地方告诉大家 我使用的版本是Spring boot 2.4.1+Spr ...
- Spring Cloud 2020.0.1 正式发布!真是头疼。。。
上一篇:Spring Cloud 2020.0.0 正式发布,全新颠覆性版本! 号外!号外!号外! Spring Cloud 2020.0.0 在去年 12 月底,赶在一年的尾巴最后几天仓促发布了,时 ...
- Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证
关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...
- Spring Cloud 2021.0.0 正式发布,第一个支持Spring Boot 2.6的版本!
美国时间12月2日,Spring Cloud 正式发布了第一个支持 Spring Boot 2.6 的版本,版本号为:2021.0.0,codename 为 Jubilee. 在了解具体更新内容之前, ...
- Spring cloud oauth2.0 access_token 永不失效设置方法
在AuthorizationServerConfigurerAdapter,重写一个TokenServices,注意这里的@Primary 非常重要,否则会有3个同类型的Bean,无法注入,会抛出以下 ...
- Spring Cloud Alibaba 2021.0.1.0 发布:版本号再也不迷糊了
大家好,DD又来了! 3月9日,Spring官方博客发文:Spring Cloud Alibaba 2021.0.1.0发布了. 前段时间DD还在微信群里看到小伙伴吐槽Spring Cloud Ali ...
随机推荐
- zuul的本地跳转
- vue2.0:(八-2)、外卖App弹窗部分sticky footer
什么是sticky-footer ? 如果页面内容不够长的时候,页脚块粘贴在视窗底部,如果内容足够长时,页脚块会被内容向下推送.那具体要怎么做呢?下面以外卖App为例: 第一种方法:这个自己用过,是好 ...
- JavaScript中登录名的正则表达式及解析(0基础)
简言 在JavaScript中,经常会用到正则表达式来进行模式匹配.例如,登录名验证,密码强度验证,字符串查找或替换等操作.现在就开始吧,零基础写出你的第一个正则表达式! 在做用户注册时,都会用到登录 ...
- JavaScript_4_数据类型
1. JavaScript对大小写敏感. 2. JavaScript是脚本语言.浏览器会在读取代码时,逐行地执行脚本代码.而对于传统编程来说,会在执行前对所有代码进行编译. 3. 变量什么用var, ...
- CF 55D Beautiful numbers (数位DP)
题意: 如果一个正整数能被其所有位上的数字整除,则称其为Beautiful number,问区间[L,R]共有多少个Beautiful number?(1<=L<=R<=9*1018 ...
- 51nod 1489 蜥蜴和地下室
题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 哈利喜欢玩角色扮演的电脑游戏<蜥蜴和地下室>.此时,他正在扮演一个魔术 ...
- 手机屏幕材质详解(TFT,TPS,OLED,AMOLED等)
手机屏幕概括起来就是两种,一个是LCD,一个是OLED屏幕,这两个是屏幕显示技术的两大基础. 一 . LCD:Liquid Crystal Display,这是一种介于固态和液态之间的物质,称为液晶技 ...
- HTML5中的webSocket、ajax、http
本文原链接:https://cloud.tencent.com/developer/article/1115496 https://cloud.tencent.com/developer/articl ...
- java基础——反射机制
反射机制是什么 反射机制就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...
- 01_13_Struts_默认Action
01_13_Struts_默认Action 1. 配置struts默认Action <package name="default" namespace="/&quo ...