Spring Cloud Alibaba
关注的程序员DD博客一直在持续推荐SpringCloudAlibaba相关资讯,需要的可以去围观
spring-cloud-alibaba-nacos 阿里巴巴注册中心
多nacos持久化支持mysql
spring-cloud-alibaba-sentinel-zuul 网关
sentinel 阿里巴巴断路器
(类hystrix工具 http://blog.didispace.com/spring-cloud-alibaba-sentinel-1/)
Sentinel控制台中修改规则:仅存在于服务的内存中,不会修改Apollo中的配置值,重启后恢复原来的值 Nacos控制台中修改规则:服务的内存中规则会更新,Nacos/Apollo中持久化规则也会更新,重启后依然保持 配置修改从Sentinel控制台同步到apollo http://blog.didispace.com/spring-cloud-alibaba-sentinel-2-3/
cloud alibaba新特效2019.04
http://blog.didispace.com/spring-cloud-alibaba-release-0-9-0/
Alibaba新增对Dubbo支持,支持Dubbo restempale Dubbo Feign
spring-cloud-alibaba-seata 阿里巴巴开源事物解决方案
SpringCloud Netflix
Spring Cloud Netflix项目进入维护模式
https://www.cnblogs.com/doit8791/p/10206867.html
Netflix宣布停止对Hystrix的更新、官方推荐resilience4j
Netflix针对zuul2.x连续跳票,spring推出gateway,目前Netflix开源了2.x
Eureka2.0开源停止,SpringCloud2.x版本的eureka为1.9.x
断路器:Sentinel 与 Hystrix、resilience4j 的对比
| Sentinel | Hystrix | resilience4j |
隔离策略 | 信号量隔离(并发线程数限流) | 线程池隔离/信号量隔离 | 信号量隔离 |
熔断降级策略 | 基于响应时间、异常比率、异常数 | 基于异常比率 | 基于异常比率、响应时间 |
实时统计实现 | 滑动窗口(LeapArray) | 滑动窗口(基于 RxJava) | Ring Bit Buffer |
动态规则配置 | 支持多种数据源 | 支持多种数据源 | 有限支持 |
扩展性 | 多个扩展点 | 插件的形式 | 接口的形式 |
基于注解的支持 | 支持 | 支持 | 支持 |
限流 | 基于 QPS,支持基于调用关系的限流 | 有限的支持 | Rate Limiter |
流量整形 | 支持预热模式、匀速器模式、预热排队模式 | 不支持 | 简单的 Rate Limiter 模式 |
系统自适应保护 | 支持 | 不支持 | 不支持 |
控制台 | 提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等 | 简单的监控查看 | 不提供控制台,可对接其它监控系统 |
注册中心
Netflix eureka、consul (star最多)、zk或者etcd/spring-cloud-alibaba-nacos
注册中心AP和CP的架构没有那个更好,关键看是否适用。
关于注册中心2017.04转发一篇文章如下,此时阿里注册中心还未出现
https://blog.csdn.net/Zzhou1990/article/details/72667659
Feature | Consul | zookeeper | etcd | euerka |
服务健康检查 | 服务状态,内存,硬盘等 | (弱)长连接,keepalive | 连接心跳 | 可配支持 |
多数据中心 | 支持 | — | — | — |
kv存储服务 | 支持 | 支持 | 支持 | — |
一致性 | raft | paxos | raft | — |
cap | cp | cp | cp | ap |
使用接口(多语言能力) | 支持http和dns | 客户端 | http/grpc | http(sidecar) |
watch支持 | 全量/支持long polling | 支持 | 支持 long polling | 支持 long polling/大部分增量 |
自身监控 | metrics | — | metrics | metrics |
安全 | acl /https | acl | https支持(弱) | — |
spring cloud集成 | 已支持 | 已支持 | 已支持 | 已支持 |
服务网关
Spring Cloud Gateway
Netflix Zuul:zuul1.x、zuul2.x 升级IO多路复用,异步响应框架,基于netty。
zuul2.x闭源又开源,但需要手动集成到Spring Cloud体系。
https://github.com/Netflix/zuul/wiki
http://blog.didispace.com/api-gateway-Zuul-1-zuul-2-how-to-choose/
Linkerd 基于服务网格(service Mesh),基于jvm和Scala
nginx+lua 结合Nginx用lua实现服务发现网关
Kong 基于OpenResty,云原生,service mesh star最高
网关设计要素,网关对比
http://www.spring4all.com/article/336 2017.12月文章,gateway还未发布
选gateway原因,zuul2.X需要手动集成,另一个gateway潜力较大
gateway官方文档地址
https://spring.io/projects/spring-cloud-gateway#learn