微服务九大特性

出自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. <Android 应用 之路> 天气预报(一)

    Android天气预报客户端 设计思路 欢迎界面,版本号,应用名 + 数据后台加载(所有城市的信息获取) 数据加载完成后跳转到显示界面,显示所有查询到的城市的天气信息 欢迎界面和天气显示界面分别为单独 ...

  2. 在Office 365 添加就地保留用户邮箱

    基于客户需求,要求将用户批量添加到Office 365中的现有就地保留.如您所了解的,我们可以通过Exchange在线图形用户GUI界面完成,也可以通过PowerShell完成. 要将用户批量添加到O ...

  3. JavaScript_11_验证

    表单验证: JavaScript可用来在数据被送往服务器前对HTML表单中的输入数据进行验证 1. 是否填写了必填项目 2. 邮件地址是否合法 ... <form action="su ...

  4. 关于一些Spring MVC控制器的参数注解总结

    昨天同事问我控制器参数的注解的问题,我好久没那样写过,把参数和url一起设置,不过,今天我看了一些文章,查了一些资料,我尽可能的用我自己的理解方式来解释它吧! 1.@RequestParam绑定单个请 ...

  5. Android(java)学习笔记135:SQLite数据库(表)的创建 以及 SQLite数据库的升级

    一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据 ...

  6. FiraCode 字体 => 箭头函数变成 整体 还有 等于 不等于

    https://github.com/tonsky/FiraCode Enable in Settings → Editor → Color Scheme → Color Scheme Font →  ...

  7. SD Card Formatter for Mac Download

    https://www.sdcard.org/downloads/formatter_4/eula_mac/ SDFormatter Mac版是一款Mac OS平台上的sd卡修复工具,SDFormat ...

  8. samba修改smb.conf后,不需要重启服务,就可生效

    在修改完smb.conf后,不需要重启服务.在Centos7.3与Ubuntu18.04上验证都没有问题. 猜测可能的原因:samba是在客户端进行连接时,smb服务程序读取smb.conf配置文件信 ...

  9. 《毛毛虫组》【Alpha】Scrum meeting 2

    第二天 日期:2019/6/15 1.1 今日完成任务情况以及遇到的问题. 今日完成任务情况: (1)对数据库表进行完善及测试: (2)定义Regex类的IsMatch()方法: (3)进行这一模块代 ...

  10. oracle中print_table存储过程实例介绍

    oracle中pro_print_table存储过程实例介绍 存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中.这 ...