springCloud详解

简介

spring cloud是java语言的微服务框架,它依赖于spring boot,微服务框架主要包含服务注册中心,服务调用,服务降级,服务网关,服务配置,服务总线等。

148

服务注册中心

FeatureeuerkaConsulzookeeperetcd
服务健康检查可配支持服务状态,内存,硬盘等(弱)长连接,keepalive连接心跳
多数据中心支持
kv 存储服务支持支持支持
一致性raftpaxosraft
capapcpcpcp
使用接口(多语言能力)http(sidecar)支持 http 和 dns客户端http/grpc
watch 支持支持 long polling/大部分增量全量/支持long polling支持支持 long polling
自身监控metricsmetricsmetrics
安全acl /httpsaclhttps 支持(弱)
spring cloud 集成已支持已支持已支持已支持

关于eureka停更

eureka官方已经正式宣布:自2.0起不再维护该项目https://github.com/Netflix/eureka/wiki

reka目前的功能已经非常稳定,就算不升级,服务注册/发现这些功能已经够用,如果寻找替代方案可以使用功能更丰富的consul。

服务调用

  • openfeign :OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解。
  • Ribbon : Ribbon 是 Netflix 公司实现的一套基于 HTTP、TCP 的客户端负载均衡的工具,已经进入维护模式,只支持RestTemplate。
  • LoadBalancer:相比较于Ribbon,Spring Cloud LoadBalancer不仅能够支持RestTemplate,还支持WebClient

服务降级(断路器)

  • openFeign里面也集成了服务降级

  • Hystrix官方已经停止开发了,Hystrix官方推荐使用新一代熔断器作为Resilience4j。作为新一代的熔断器,Resilience4j有很多优势,比如依赖少,模块化程度较好等优势。

    SentinelHystrixresilience4j
    隔离策略信号量隔离(并发线程数限流)线程池隔离/信号量隔离信号量隔离
    熔断降级策略基于响应时间、异常比率、异常数基于异常比率基于异常比率、响应时间
    实时统计实现滑动窗口(LeapArray)滑动窗口(基于 RxJava)Ring Bit Buffer
    动态规则配置支持多种数据源支持多种数据源有限支持
    扩展性多个扩展点插件的形式接口的形式
    基于注解的支持支持支持支持
    限流基于 QPS,支持基于调用关系的限流有限的支持Rate Limiter
    流量整形支持预热模式、匀速器模式、预热排队模式不支持简单的 Rate Limiter 模式
    系统自适应保护支持不支持不支持
    控制台提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等简单的监控查看不提供控制台,可对接其它监控系统

服务网关

  • Spring Cloud Gateway :是 Spring Cloud 微服务平台的一个子项目,属于 Spring 开源社区

  • Zuul : 是 Netflix 公司的开源项目,Spring Cloud 在 Netflix 项目中也已经集成了 Zuul,但Netlix最新的Zuul 2.xSpring Cloud没有集成。

服务配置

  • consul和zookeeper 都自带config,可以替代spring cloud config

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×