• Dubbo与SpringCloud的Ribbon、Hystrix、 Feign的优劣势⽐较


    微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的⼏个重要问题。
    Spring Cloud是⼀套完整的微服务解决⽅案,基于 Spring Boot 框架。确切的说,Spring Cloud是⼀个
    ⼤容器(⽽不是⼀个框架),它可以将通过集成⼀些好的微服务框架,从⽽简化开发者的代码量。

    Dubbo 是阿⾥开源的分布式通信框架,专注于通信服务治理,类似于Spring Cloud中 Ribbon、
    Hystrix、 Feign等核⼼组件的功能。
    下⾯,我们着重来聊下这两种处理⽅式有何不同。

    协议处理

    Spring Cloud更加优雅简单
    Feign使⽤Http进⾏传输。
    Feign 集成了Ribbon,并且嵌⼊了Spring cloud全家桶 ,通过简单配置 ,就能在分布式⾥⾯实现服务间
    的调⽤,类似于Bean 调⽤。

    Dubbo⽅式更灵活
    Dubbo协议可选,⼤部分情况使⽤Dubbo传输协议,也可以使⽤http协议。
    从协议层选择看,Dubbo是配置化的,更加灵活。
    Dubbo 协议更适合⼩数据⾼并发场景。

    性能⽅⾯

    Spring Cloud性能调优
    Feign 在⾼并发场景下,通常需要进⾏如下性能优化,有明显瓶颈,需要改造。
    调整服务容器到 UnderTow ,在负载⼤的情况下Undertow 的性能有提⾼;
    曾有同学表示将HTTPURLConnection 改成 Httpclient /Okhttp,这样可以优化性能,其实单次调⽤性
    能Httpclient差很多,HttpClient 因为封装了很多⽅便开发者处理的⽅法,性能⽐HTTPURLConnection
    差,改进同时Httpclient 需要设置复⽤连接池,效果可⻅⼀般;

    开启Gzip;
    · Feign中HttpMessageConverters 默认使⽤jackson2⽅式进⾏序列化和反序列化,可以将其改造为
    ProtoBuf,降低Cpu 损耗并且响应时间也降低。

    Dubbo性能调优
    主要是配置⽽⽆需改造

    负载均衡

    Ribbon 的负载均衡策略
    . 随机;
    · 规则轮询;
    · 空闲策略;
    · 响应时间策略。
    Feign默认使⽤Ribbon作为负载均衡的组件,Ribbon需要进⾏全局配置,个性化配置⽐较麻烦。

    Dubbo 的负载均衡策略
    · 随机;
    · 权重轮询;
    · 最少活跃调⽤数;
    · ⼀致性Hash策略。
    Dubbo 可以使⽤路由策略,然后再进⾏负载均衡。

    容错机制

    Spring cloud 的 Hystix 提供了服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能。
    在这里插入图片描述

    Dubbo 提供了⼀整套 FailOver、FailFast、Failsafe、FailBack、Aviailable、Broadcast、Forking 策
    略,以及Mock
    在这里插入图片描述

    路由、流量调度、ABtest

    Ribbon需⾃⼰实现,应⽤不灵活
    Ribbon主要通过扩展 AbstractLoadBalancerRule负载均衡的⽅法来实现,在负载均衡的部分还要进⾏
    改造升级。

    Dubbo更加灵活⽅便
    Dubbo通过界⾯化、校本化配置路由规则,可以实现灰度发布、动态流量调度、容量计算等,⽅案成
    熟。
    另外,Dubbo 还⽀持多版本调⽤。

    总结

    正如Dubbo的介绍(如下图),业务发展影响着架构的选型,当服务数量不是很⼤时,使⽤普通的分布式
    RPC架构即可,当服务数量增⻓到⼀定数据,需要进⾏服务治理时,就需要考虑使⽤流式计算架构。
    在这里插入图片描述
    Dubbo可以⽅便的做更精细化的流量调度,服务结构治理的⽅案成熟,适合⽣产上使⽤,虽然Dubbo是
    尘封后重新开启,但这并不影响其技术价值。
    Ribbon Hystrix Feign在服务治理中,配合Spring Cloud做微服务,使⽤上有很多优势,社区也⽐较活
    跃,看将来更新发展。

  • 相关阅读:
    C认证笔记 - 计算机通识 - 信息单位
    使用python生成大量数据写入es数据库并查询操作2
    2023年7月京东笔记本电脑行业品牌销售排行榜(京东数据平台)
    免费1年服务器,部署个ChatGPT专属网页版
    HTML网页设计结课作业——基于HTML+CSS仿学校官网页面
    C++函数重载详解
    分类预测 | MATLAB实现SSA-CNN-GRU-Attention数据分类预测(SE注意力机制)
    【mindspore】【训练】训练过程内存占用大
    Vue2 router详解
    深入探索:AbstractQueuedSynchronizer 同步器的神秘面纱
  • 原文地址:https://blog.csdn.net/weixin_43118617/article/details/125663033