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 ... 
随机推荐
- ParallelsDesktop安装DOS7.1并与MAC共享文件
			ParallelsDesktop安装DOS7.1并与MAC共享文件 Table of Contents 1. 在Parallels Desktop中安装DOS7.1 2. 配置与Mac共享文件 1 在 ... 
- 零基础逆向工程11_C语言05_结构体
			结构体小结 结构体是按照分配的大小,局部变量会自动数据对齐 1字节对齐,省空间,但cpu查找效率低 4字节对齐,不省空间,但cpu查找效率高 VC6默认的结构对齐大小 项目右键-> settin ... 
- 网络文件系统(NFS)的使用
			一.简介 NFS--Network FileSystem,即网络文件系统,主要功能是让网络上的不同操作系统之间共享数据. 远程服务器端共享出文件或目录,然后远羰共享出来的文件或目录就可通过挂 载的方式 ... 
- android app 压力测试工具-monkey tool
			一.什么是Monkey? Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. Monkey是A ... 
- [论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
			Region-Based Convolutional Networks for Accurate Object Detection and Segmentation 概括 这是一篇2016年的目标检测 ... 
- leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal,剑指offer 6 重建二叉树
			不用迭代器的代码 class Solution { public: TreeNode* reConstructBinaryTree(vector<int> pre,vector<in ... 
- 最全面的 python 字符串拼接总结(带注释版)
			在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 加号连接 第一种,通过+号的形式: >>> a, b = 'hello', ' wor ... 
- iOS调用WebService接口
			首先有几点说在前面 一般,在请求URL的后面带有WSDL字样的需要调用WebService URL样式例子:http://ip:port/navigable/webservice/loginSeric ... 
- d3网址
			官网: http://d3js.com D3创始人 http://bost.ocks.org.mike 教程: http://www.dashingd3js.com/table-of-contents ... 
- 基础的Mapgis三维二次开发-插件式
			最近在做一个杭州石油的项目开发一个小系统. 1.命令必须是 ICommand 的派生类 using System; using System.Collections.Generic; using Sy ... 
