微服务九大特性

出自Martin Fowler的《Microservices》

  1. 服务组件化
  2. 按业务组织团队
  3. 做“产品”的态度
  4. 智能端点与哑管道
  5. 去中心化治理
  6. 去中心化管理数据
  7. 基础设施自动化
  8. 容错设计
  9. 演进式设计

Spring Boot特性

  1. 支持main方法直接拉起嵌入式web容器
  2. 本地配置方式更友好,支持占位符 支持profile,支持启动参数覆盖等,支持自动配置
  3. 支持自动装配等

Eureka的特性

  1. 服务发现的server与client,即支持注册与发现能力。
  2. 高可用,可以两个(或以上)节点相互备份,通过eureka.client.serviceUrl.defaultZone配置其他两个节点的url。server既是server也是client。
  3. 通过注解启用注册中心server端能力 EnableEurekaServer
  4. 需要注册的provider端只要在classpath下放spring-cloud-starter-netflix-eureka-client相关依赖,那么provider就可以自动注册到eureka注册中心。当然了需要在配置文件中配置eureka服务的url地址,配置项的key是eureka.client.serviceUrl.defaultZone。
  5. server支持配置多长时间扫描一次失效服务
  6. client端支持配置多长时间给server发一次心跳,支持配置多长时间没有收到心跳就移除服务列表
  7. 注册与发现时支持密码鉴权
  8. 支持多注册中心分组

Ribbon特性

  1. 客户端负载均衡器,客户端自己维护要访问的服务端清单,比如来自于注册中心
  2. 提供spring-cloud-starter-netflix-ribbon artifact ID 用于引入ribbon
  3. 提供ribbon+RestTemplate的客户端负载均衡方式,那当然也提供了客户端。
  4. 用心跳去维护服务端清单的健康行,支持弹性失败
  5. 多种可插拔负载均衡规则: 轮询,随机,区域感知轮询,响应时间权重,具体参加com.netflix.loadbalancer.IRule的实现
  6. 支持ribbon.MaxAutoRetries 最大重试次数配置
  7. 支持配置是否所有操作都能重试
  8. 支持配置 刷新服务端列表的时间
  9. 支持配置读超时 与 连接超时 (针对HttpClient)
  10. 支持配置初始化的服务端列表
  11. 支持自定义RibbonClient
  12. 支持自定义负载均衡策略
    Netflix ribbon自己的wiki写的更清晰一些。

Hystrix特性

  1. 支持用spring-cloud-starter-netflix-hystrix 和 EnableCircuitBreaker 注解完成hystrix引入
  2. 支持指定fallBack时的方法,方法参数与服务方法参数相同(也就是支持参数传递)
  3. 支持 全局默认配置 动态全局配置 实例默认配置 实例动态配置 四个层次的配置覆盖能力
  4. 支持用execution.isolation.strategy配置隔离策略,支持线程(默认)和信号量方式的隔离
  5. 支持用execution.isolation.thread.timeoutInMilliseconds指定线程执行多长时间超时然后出发fallback,默认值1000ms
  6. 支持用execution.timeout.enabled配置是否需要启用线程执行超时机制,默认true
  7. 支持用execution.isolation.thread.interruptOnTimeout指定线程执行超时后是否终端,默认是true
  8. 支持用execution.isolation.thread.interruptOnCancel指定取消发生时是否要终端线程,默认false
  9. 支持用execution.isolation.semaphore.maxConcurrentRequests配置信号量模式下的最大并发请求数,默认10
  10. 支持fallback.isolation.semaphore.maxConcurrentRequests在信号量模式下callback最大并发请求数, 默认10
  11. 支持用fallback.enabled 指定是否启用fallback,默认true
  12. 支持用circuitBreaker.enabled 指定是否启用断路器 默认true
  13. 支持用circuitBreaker.requestVolumeThreshold配置 一个滑动窗口内 多少个请求失败后再启用断路器,默认是20
  14. 支持用circuitBreaker.sleepWindowInMilliseconds配置断路器被触发后生效多少时间,默认5s
  15. 支持用circuitBreaker.errorThresholdPercentage 配置失败百分比达到多少时启用断路器并触发fallback逻辑
  16. 支持用circuitBreaker.forceOpen配置在所有服务失败时是否强制开启断路器,默认是false
  17. 支持用metrics.rollingStats.timeInMilliseconds配置时间窗口时长(断路器要根据单位时间内的失败数量或者比率来决定是否启用),默认10s
  18. 支持用metrics.rollingStats.numBuckets设置桶的数量,默认是10
  19. 支持用requestCache.enabled配置是否启用缓存,在command有getCacheKey() 方法是默认启用此特性。 用@CacheResult注解配合@HystrixCommand注解可以开启缓存,默认是所有方法参数作为key,也可以通过cacheKeyMethod制定getkey方法,也可以使用@CacheKey注解加载服务方法的参数上作为缓存的key,用@CacheRemove注解关闭缓存。 可以参见这里
  20. 支持请求合并。 支持maxRequestsInBatch配置合并批次中的请求数。 支持timerDelayInMilliseconds配置延迟时间,默认10ms。
  21. 支持线程池相关属性配置。
    21.支持dashboard
    所有的详细配置可参见这里这里

Feign特性

  1. 支持用定义接口的方式替换了写代码实现远程client调用的代码
  2. 支持从请求header中拿参数作为调用远程服务的请求参数
  3. 支持用ribbon和hystrix实现负载均衡与服务降级
  4. 支持client的日志级别配置

Zuul特性

  1. 支持转发,支持转发路由规则配置
  2. 支持请求过滤,ZuulFilter,自带了多种实现
  3. 支持动态路由配置,需要配合spring cloud使用
  4. 支持动态过滤器,groovy脚本

config特性

  1. 可以对接git、svn、本地文件存储
  2. 支持高可用,用eureka或者config server都指向同一git仓库
  3. 支持配置项加密,支持密钥配置
  4. 支持动态刷新配置

Spring Cloud(2.0)能力大致列表的更多相关文章

  1. Spring Cloud的子项目,大致可分成两类

    Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目:第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cl ...

  2. Spring Cloud 2020.0.0正式发布,再见了Netflix

    目录 ✍前言 版本约定 ✍正文 Spring Cloud版本管理 与Spring Boot版本对应关系 当前支持的版本 阻断式升级(不向下兼容) 1.再见了,Netflix Netflix组件替代方案 ...

  3. Spring Cloud 2020.0.0 正式发布,全新颠覆性版本!

    Spring Cloud 2020.0.0 没错,Spring Cloud 2020.0.0 正式发布了: 感谢Java技术栈群友通知,想入群的在公众号Java技术栈后台回复:wx,正在使用 Spri ...

  4. 最新最简洁Spring Cloud Oauth2.0 Jwt 的Security方式

    因为Spring Cloud 2020.0.0和Spring Boot2.4.1版本升级比较大,所以把我接入过程中的一些需要注意的地方告诉大家 我使用的版本是Spring boot 2.4.1+Spr ...

  5. Spring Cloud 2020.0.1 正式发布!真是头疼。。。

    上一篇:Spring Cloud 2020.0.0 正式发布,全新颠覆性版本! 号外!号外!号外! Spring Cloud 2020.0.0 在去年 12 月底,赶在一年的尾巴最后几天仓促发布了,时 ...

  6. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证

    关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...

  7. Spring Cloud 2021.0.0 正式发布,第一个支持Spring Boot 2.6的版本!

    美国时间12月2日,Spring Cloud 正式发布了第一个支持 Spring Boot 2.6 的版本,版本号为:2021.0.0,codename 为 Jubilee. 在了解具体更新内容之前, ...

  8. Spring cloud oauth2.0 access_token 永不失效设置方法

    在AuthorizationServerConfigurerAdapter,重写一个TokenServices,注意这里的@Primary 非常重要,否则会有3个同类型的Bean,无法注入,会抛出以下 ...

  9. Spring Cloud Alibaba 2021.0.1.0 发布:版本号再也不迷糊了

    大家好,DD又来了! 3月9日,Spring官方博客发文:Spring Cloud Alibaba 2021.0.1.0发布了. 前段时间DD还在微信群里看到小伙伴吐槽Spring Cloud Ali ...

随机推荐

  1. vmware 虚机NAT模式,局域网可访问

    本地VMware虚拟机,网络模式为NAT,现在需要局域网其他电脑通过ssh连接这台VMware虚拟机 宿主机地址:192.168.3.26 VMware虚拟机地址:192.168.239.137 局域 ...

  2. 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件

    这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...

  3. ceisum_加载倾斜摄影模型

    osgb转换为3Dtiles格式(使用工具转换) 然后加载到cesium中(加载代码见下,可以控制模型高度) var offset = function(height,tileset) { conso ...

  4. UVA1607 Gates 与非门电路 (二分)

    题意:给你一个按发生时间的序列,表示与非门电路的输入,一开始全部输入是x,现在要改成尽量少的x,实现相同的功能. 题解:电路功能只有4中0,1,x,非x.那么如果一开始x改变了,输出结果不变,那么说明 ...

  5. 八数码问题(一) 暴力BFS + STL

    八数码问题是一个经典的人工智能问题.具体问题不累述了. 思路:由于存在多组测试数据,可以考虑“打表法“.所谓打表法,即枚举所有的初始情况,记录其到达终点的路径.而在这个题目中,顺序打表会调用很多次BF ...

  6. 2018.2.09 php学习(二)

    1.用索引提高效率: 索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快. 当ORACLE找出执行查询和Upda ...

  7. Java Marker Interface

    先看看什么是标记接口?标记接口有时也叫标签接口(Tag interface),即接口不包含任何方法. 在Java里很容易找到标记接口的例子,比如JDK里的Serializable接口就是一个标记接口. ...

  8. SC || 解决在git中上传过大文件的问题(如何将提交过的彻底删除

    就在我在ddl前续命的时候……不知道怎么想不开,把v2的压力测试的日志(500多M)也往github上传 之前听说过好多因为传了大文件的锅…… 我竟然还想不开的往上传…… 真实又傻又蠢又自闭(T T ...

  9. stm32F042 (二) 按键触发中断

    已经实现GPIO口输出高低电平控制LED,这里实现按键触发中断来改变LED闪亮的频率,因为PB3连着LED,所以PB3的输出模式没有改变,随意选一个GPIO口PA7接按键产生中断.因为nucleo开发 ...

  10. 《剑指offer》51:数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...