微服务九大特性

出自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. springboot集成shiro实现身份认证

    github地址:https://github.com/peterowang/shiro pom文件 <dependencies> <dependency> <group ...

  2. android :fragmentation使用中遇到的 NullPointerException

    背景:fragmentation(单ACTIVITY+多个fragments)+brvah(  recyclerView多级自定义菜单功能) 目的:实现  菜单栏的点击,fragment 显示相应的内 ...

  3. 安装python3后,没有Scripts目录的解决办法

    设置好python环境变量后,执行命令即可:python -m ensurepip

  4. CentOS7.3+MySQL5.7+Apache2.4+PHP7.1+phpMyAdmin4.7+JDK1.8+SVN1.6+Jenkins2.1环境搭建

    CentOS7.3+MySQL5.7+Apache2.4+PHP7.1+phpMyAdmin4.7+JDK1.8+SVN1.6+Jenkins2.1环境搭建 1.安装CentOS7.3虚拟机安装说明: ...

  5. My sql之存储过程+游标

    sql 实例如下: /**************定义更改car_station_user_acct_his new_balance old_balance存储过程**************/ cr ...

  6. SAP标准培训课程C4C10学习笔记(三)第三单元

    第三单元:Account and Contact management Account和Contact概念和SAP CRM里是一样的: 并且支持同ERP和CRM的客户主数据做同步. 关于具体的同步场景 ...

  7. SAP GUI里Screen Painter的工作原理

    我们在SAP GUI里双击一个screen编号: 单击Layout按钮可以打开Screen Painter: 这背后的工作原理是什么? 是这个RFC destination在起作用: Connecti ...

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

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

  9. Codeforces Round #Pi (Div. 2) 567E President and Roads ( dfs and similar, graphs, hashing, shortest paths )

    图给得很良心,一个s到t的有向图,权值至少为1,求出最短路,如果是一定经过的边,输出"YES",如果可以通过修改权值,保证一定经过这条边,输出"CAN",并且输 ...

  10. 2018.3.27 Mac 配置Tomcat

    先在官网上下载Tomcat .也可以用这个传送门. https://tomcat.apache.org/download-70.cgi 选择zip文件夹的下载就ok 下载完成之后将该文件夹.(如果是t ...