dubbo优势_Dubbo与SpringCloud核心组件Ribbon、Hystrix、Feign的优劣势比较
在微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的几个重要问题。
Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架。确切的说,Spring Cloud是一个大容器(而不是一个框架),它可以将通过集成一些好的微服务框架,从而简化开发者的代码量。
Dubbo 是阿里开源的分布式通信框架,专注于通信服务治理,类似于Spring Cloud中 Ribbon、 Hystrix、 Feign等核心组件的功能。
下面,我们着重来聊下这两种处理方式有何不同。
01 协议处理
1)Spring Cloud更加优雅简单
Feign使用Http进行传输。
Feign 集成了Ribbon,并且嵌入了Spring cloud全家桶 ,通过简单配置 ,就能在分布式里面实现服务间的调用,类似于Bean 调用。
2)Dubbo方式更灵活
Dubbo协议可选,大部分情况使用Dubbo传输协议,也可以使用http协议。
从协议层选择看,Dubbo是配置化的,更加灵活。
Dubbo 协议更适合小数据高并发场景。
02 性能方面
1)Spring Cloud性能调优
Feign 在高并发场景下,通常需要进行如下性能优化,有明显瓶颈,需要改造。
· 调整服务容器到 UnderTow ,在负载大的情况下Undertow 的性能有提高;
· 曾有同学表示将HTTPURLConnection 改成 Httpclient /Okhttp,这样可以优化性能,其实单次调用性能Httpclient差很多,HttpClient 因为封装了很多方便开发者处理的方法,性能比HTTPURLConnection差,改进同时Httpclient 需要设置复用连接池,效果可见一般;
· 开启Gzip;
· Feign中HttpMessageConverters 默认使用jackson2方式进行序列化和反序列化,可以将其改造为ProtoBuf,降低Cpu 损耗并且响应时间也降低。
2)Dubbo性能调优
主要是配置而无需改造。
03 负载均衡
1)Ribbon 的负载均衡策略
· 随机;
· 规则轮询;
· 空闲策略;
· 响应时间策略。
Feign默认使用Ribbon作为负载均衡的组件,Ribbon需要进行全局配置,个性化配置比较麻烦。
2)Dubbo 的负载均衡策略
· 随机;
· 权重轮询;
· 最少活跃调用数;
· 一致性Hash策略。
Dubbo 可以使用路由策略,然后再进行负载均衡。
04 容错机制
Spring cloud 的 Hystix 提供了服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能。
图片为引用,来源于官方图片
Dubbo 提供了一整套 FailOver、FailFast、Failsafe、FailBack、Aviailable、Broadcast、Forking 策略,以及Mock
图片为引用,来源于官方图片
05 路由、流量调度、ABtest
1)Ribbon需自己实现,应用不灵活
Ribbon主要通过扩展 AbstractLoadBalancerRule负载均衡的方法来实现,在负载均衡的部分还要进行改造升级。
2)Dubbo更加灵活方便
Dubbo通过界面化、校本化配置路由规则,可以实现灰度发布、动态流量调度、容量计算等,方案成熟。
另外,Dubbo 还支持多版本调用。
06 总结
正如Dubbo的介绍(如下图),业务发展影响着架构的选型,当服务数量不是很大时,使用普通的分布式RPC架构即可,当服务数量增长到一定数据,需要进行服务治理时,就需要考虑使用流式计算架构。
图片为引用,来源于官方图片
Dubbo可以方便的做更精细化的流量调度,服务结构治理的方案成熟,适合生产上使用,虽然Dubbo是尘封后重新开启,但这并不影响其技术价值。
Ribbon Hystrix Feign在服务治理中,配合Spring Cloud做微服务,使用上有很多优势,社区也比较活跃,看将来更新发展。
如果觉得不错,请点赞支持下,谢谢。
超500+架构技术专题集合,回复【架构】,即可获得。
dubbo优势_Dubbo与SpringCloud核心组件Ribbon、Hystrix、Feign的优劣势比较相关推荐
- 微服务系列:Dubbo与SpringCloud的Ribbon、Hystrix、Feign的优劣势比较
在微服务架构中,分布式通信.分布式事务.分布式锁等问题是亟待解决的几个重要问题. Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架.确切的说,Spring Clo ...
- 【springCloud搭建】四、集成ribbon+hystrix+feign
上篇文章传送门:[springCloud搭建]三.集成springCloudGateway网关 ribbon+hystrix+feign所需的第三方包 <!--feign服务通讯组件--> ...
- dubbo优势_Dubbo 迈出云原生重要一步 应用级服务发现解析
作者 | 刘军(陆龟) Apache Dubbo PMC 概述 社区版本 Dubbo 从 2.7.5 版本开始,新引入了一种基于实例(应用)粒度的服务发现机制,这是我们为 Dubbo 适配云原生基础 ...
- dubbo优势_dubbo优点是什么?dubbo有哪些缺点?
之前给大家介绍了一下dubbo工作原理,下面就接着来给大家介绍dubbo的优点和缺点,你知道他的优点和缺点吗? 一.dubbo的优点有哪些? 首先我们来介绍一下dubbo的优点,总的来说dubbo有着 ...
- 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...
- springCloud - 第5篇 - 断路器 Hystrix ( Feign 、Ribbon )
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.为什么要有熔断 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC ...
- springcloud+springboot+Eureka+Feign+Ribbon+Hystrix+Zuul
Springcloud集成Eureka Eureka服务端和客户端 本实例采用springboot,eureka和feign/ribbon,hystrix,zuul,mybatis,redis 1. ...
- SpringCloud核心组件概述(五大神兽)
小伙伴们可以从第一篇看起 微服务 分布式 集群 负载均衡详述 spring boot springcloud dubbo概述 2.5万字详解Java 23种设计模式的简介和创建型模式(简单工厂.工厂方 ...
- 阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较
本文主要围绕微服务的技术选型.通讯协议.服务依赖模式.开始模式.运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架.架构师可以根据公司的技术实力并结合项目的特点来选择某个合 ...
最新文章
- 跨区域MPLS TE
- win8: 清除iframe的缓存
- C++学习笔记(二)
- 玛纽尔扫地机器人怎样_扫地机器人哪个牌子好?满足日常清洁需求才值得推荐...
- 基于javaEE技术的课程设计管理系统设计与实现
- 电脑怎么设计java环境_java环境变量配置,详细教您win7怎么配置java环境变量。
- IDEA打造快捷属性 摆脱鼠标 高效操作
- 最新如何在CentOS6版本上安装Teamviewer
- 11 EDA技术实用教程【时序电路的Verilog设计2】
- 基于51单片机220V交流电流检测系统过流阈值报警方案原理图
- 读书札记:一些常用计算机管理命令
- 常见端口对应服务及入侵方式
- UNIX环境高级编程---进程间通信总结
- Linux 进程内存布局(一)
- 一本程序员黑话进阶指南!拿走不谢!
- 山沟沟里的技术脱贫:阿里工程师助平武蜂农物联网养蜂...
- 为什么产品经理要做市场调研
- 单页和多页应用(vue.js学习笔记)
- 网站 压力 测试软件,网站压力测试软件
- 【Centos7内网环境Nexus3私服搭建】
热门文章
- python服务器搭建 实战_实战讲解:如何用Python搭建一个服务器
- 工业以太网交换机的作用和工作原理详解
- 【渝粤教育】国家开放大学2018年秋季 2006T经济数学基础12 参考试题
- 物联网设备的互操作性问题探讨
- 物联网未来发展的十大趋势
- 二级c语言函数调用题,2013年计算机二级C语言函数调用考点归纳
- dev分支和master是什么_天天用Git,分支开发你怎么弄的?
- 01_2_数字基带传输及其频谱特性
- java里面自行车的属性_11、Java基础知识
- fftw-3.3.8库在linux下的的编译和配置