• 微服务(Spring Cloud)主要组件优缺点对比


    参考:Hystrix Sentinel Resilience4j对比 - 知乎

    断路器对比Sentinel、Hystrix、resilience4j

    Spring Cloud Config、Apollo、Nacos配置中心选型及对比

    一、注册中心Nacos, Consul, Eureka对比   

    对比项nacosSpring Cloud ConsulEureka

    开源

    协议

    Apache-2.0 licenseAGPL-3.0 licenseApache-2.0 license

    最近

    更新

    更新频繁(latest:2.1.1, Aug 8 2022)更新频繁(latest:1.5.0, Jul 11 2022)已停止更新
    应用内/外外部应用,侵入性小外部应用,侵入性小直接集成到应用中,依赖于应用自身完成服务的注册与发现
    CAP原则遵循CP(一致性+分离容忍) 和AP(可用性+分离容忍)原则遵循CP(一致性+分离容忍)原则, 服务注册稍慢,由于其一致性导致了在Leader挂掉时重新选举,期间整个consul服务不可用遵循AP(可用性+分离容忍)原则,有较强的可用性,服务注册快,但一致性较差
    配置中心功能是,符合Spring boot的开发规范,支持动态刷新
    访问协议HTTP/动态DNS/UDPHTTP/DNSHTTP
    集成支持spring cloud/k8s/dubbospring cloud/k8s只支持SpringCloud集成
    雪崩保护支持 不支持支持
    界面界面友好(中文界面)

    管理界面不友善(

    简单英文界面)
    英文界面
    易用性极易,中文文档,案例丰富,社区活跃应用稍复杂容易
    其它特点

    Spring Cloud官方推荐的组件之一

    Spring Cloud官方组件Spring Cloud官方组件

    二、配置中心:Nacos, Spring Cloud Consul, Spring Cloud Config

    对比项nacosSpring Cloud ConsulSpring Cloud Config

    开源

    协议

    Apache-2.0 licenseAGPL-3.0 licenseApache-2.0 license

    最近

    更新

    更新频繁(latest:2.1.1, Aug 8 2022)更新频繁(latest:1.5.0, Jul 11 2022)更新频繁(latest:3.1.4, Sep 6 2022)
    配置回滚支持支持支持
    多集群多环境支持支持支持
    监听查询支持支持支持
    配置格式校验支持支持支持
    通信协议HTTPHTTPHTTP

    动态调整配置参数

    支持支持支持
    动态刷新支持支持支持
    高可用支持支持支持
    多数据中心支持支持支持
    案例案例丰富(阿里巴巴,蚂蚁金融,拼多多,爱奇艺等)作为配置中心使用,案例较少案例暂未发现
    权限管理支持不支持不支持
    界面界面友好(中文界面)

    管理界面不友善(

    简单英文界面)
    没有界面,管理麻烦
    易用性极易,中文文档,案例丰富,社区活跃应用稍复杂依赖繁多,部署和易用性较差(后端存储需要:GIt, Gitlab;配置批量刷新,需要Spring Cloud Bus,依赖Kafka或RabbitMQ)
    其它特点

    Spring Cloud官方推荐的组件之一, 文档丰富

    Spring Cloud官方组件,使用前需了解Spring Cloud Config管理规范Spring Cloud官方组件,

    遵循Spring Cloud Config的配置管理规范

    后端存储支持丰富(支持Git、SVN、MySQL、Vault、本地存储等)

    三、服务降级:Sentinel, Resillience4j, Hystrix对比

    系统自适应:  结合应用的机器负载、CPU 使用率,整体平均响应时间、入口 QPS 和并发线程数等几个维度的监控指标从而决定是否调用进行限流操做

    比较项SentinelResilience4jHystrix

    开源

    协议

    Apache-2.0 licenseApache-2.0 licenseApache-2.0 license

    最近

    更新

    更新频繁(latest:2.1.1, Aug 8 2022)更新较慢(latest:1.7.1, Jun 25 2021)已停止更新
    特点
    • 轻量级
    • 核心库无多余依赖
    • 性能损耗小
    • 基于Java8和函数式编程
    • 轻量级容错库
    • 无多余依赖
    ---
    隔离策略信号量隔离信号量隔离信号量/线程池隔离
    熔断降级策略异常比率/响应时间/异常数异常比率/响应时间异常比率
    控制台实时监控、机器发现、规则管理等能力。

    不提供

    提供监控查看
    系统自适应支持(

      结合应用的机器负载、CPU 使用率,整体平均响应时间、入口 QPS 和并发线程数等维度进行限流操做

    )
    不支持不支持
    基于注解的支持支持支持支持
    限流基于QPS、调用关系的限流限速器(Rate Limiter)限流有限的支持
    流量模式支持预热模式、匀速器模式、预热排队模式支持简单的Rtate Limiter模式不支持
    业界案例
    • Alibaba(双11大促等核心线上场景应用案例丰富)
    • 蚂蚁金融
    • 顺丰科技
    • 拼多多
    • 中国太平
    • 爱奇艺
    • 金汇金融
    • 闪电购
    • 文轩网
    • 新华书店
    • 漫道
    • 二维火
    • 客如云
    • 亲宝宝
    • Deutsche Telekom (In an application with over 400 million requests per day)

    • AOL (In an application with low latency requirements)

    • Netpulse (In a system with 40+ integrations)

    • wescale.de (In a B2B integration platform)

    • Topia (In an HR application built with microservices architecture)

    • Auto Trader Group plc (The largest Britain digital automotive marketplace)

    • PlayStation Network (A platform backend)

    ---

    四、Loadbalancer VS Ribbon

    对比项LoadbalancerRibbon

    开源

    协议

    Apache-2.0 licenseApache-2.0 license

    最近

    更新

    latest:v3.1.4, Sep 7 2022latest:2.4.8, Aug 6 2021
    来源Spring Cloud官方组件Netflix旗下产品
    说明

    Spring Cloud 采用 LoadBalancer作为 Ribbon 的替代方案,

    提供两种负载均衡的客户端:RestTemplate 和 WebClient。

    目前已停更进维

    五、ELK vs Loki

    对比项LokiELK

    开源

    协议

    AGPL-3.0 license
    ElasticSearch: SSPL+Elastic license 2.0
    Logstash: Unknown, Unknown licenses found
    Kibana: Elastic License 2.0 etc
    

    最近

    更新

    latest:v2.6.1, Jul 18 2022

    latest:

    Elasticsearch: 8.4.1, Aug 30 2022

    Logstash: 8.4.1, Aug 30 2022

    Kibana: 8.4.1, Aug 30 2022

    部署部署简单轻量部署复杂(需同时部署ElasticSearch, Logstash, Kibana)
    操作操作简单 操作复杂
    资源占用存储占用资源较少(日志数据压缩存储)存储占用资源多
    索引标签索引全文索引
    特点

    水平可扩展,高可用,多租户

    高效,易于操作,

    功能丰富(大多功能用不到)

    支持复杂操作

    K8s支持

    天生支持K8s Pod日志存储,

    自动发现Pod日志,

    支持Pod元数据存储及查询

    不支持,需专门配置日志收集代理

    六、Nacos VS Bus

  • 相关阅读:
    崖山YashanDB启动数据库监控服务操作记录
    服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2
    技术学习:Python |欲先善其事,必先利其器(JSON)二
    设计模式---建造者模式
    jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)
    Java中的ORM框架——myBatis
    Sumo中Traci.trafficlight详解(上)
    【机器学习习题】估计一个模型在未见过的数据上的性能
    anaconda+pytorch安装+pycharm环境配置
    java中基本数据类型的最大值最小值理解
  • 原文地址:https://blog.csdn.net/justlpf/article/details/126827744