zoukankan      html  css  js  c++  java
  • 微服务框架Dubbo与SpringCloud的区别

    微服务框架Dubbo与SpringCloud的区别

    微服务主要的优势如下:

    1、降低复杂度

    将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。

    每个服务开发者只专注服务本身,通过使用缓存、DAL等各种技术手段来提升系统的性能,而对于消费方来说完全透明。

    2、可独立部署

    由于微服务具备独立的运行进程,所以每个微服务可以独立部署。当业务迭代时只需要发布相关服务的迭代即可,降低了测试的工作量同时也降低了服务发布的风险。

    3、容错

    在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。 通过限流、熔断等方式降低错误导致的危害,保障核心业务正常运行。

    4、扩展

    单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。

    Dubbo

    Dubbo阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

     

    Dubbo 核心部件(如下图):

    Provider: 暴露服务的提供方,可以通过jar或者容器的方式启动服务

    Consumer:调用远程服务的服务消费方。

    Registry: 服务注册中心和发现中心。

    Monitor: 统计服务和调用次数,调用时间监控中心。(dubbo的控制台页面中可以显示,目前只有一个简单版本)

    Container:服务运行的容器。

     

     SpringCloud

    Spring Cloud是一系列框架的有序集合,是构建分布式系统的工具集。开发者全家桶,把业界主流最好技术整合起来集中利用这些方便工具构建业务系统。

     

    Spring Cloud总体架构如下图

    Service Provider: 暴露服务的提供方。

    Service Consumer:调用远程服务的服务消费方。

    EureKa Server: 服务注册中心和服务发现中心。

     

    Dubbo与SpringCloud两者的区别

    最大的区别:Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。

     

    性能比较

    使用一个Pojo对象包含10个属性,请求10万次,Dubbo和Spring Cloud在不同的线程数量下,每次请求耗时(ms)如下:

     

    来源(背景):

    Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。

    Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。

    其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。

     

    传输:

    Dubbo由于是二进制的传输,占用带宽会更少;

    Spring Cloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大。但是在国内95%的公司内,网络消耗不是什么太大问题,

    如果真的成了问题,通过压缩、二进制、高速缓存、分段降级等方法,很容易解。

     

    开发难度:

    Dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决;

    Spring Cloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级

     

    后续改进:

    Dubbo通过dubbofilter,很多东西没有,需要自己继承,如监控,如日志,如限流,如追踪

    Spring Cloud自己带了很多监控、限流措施,但是功能可能和欧美习惯相同,国内需要进行适当改造,但更简单,就是ServletFilter而已,但是总归比dubbo多一些东西总是好的;

     

    注册中心:

    Dubbo的注册中心可以选择zk,redis等多种;

    Spring Cloud:的注册中心只能用eureka或者自研;

     

    配置中心:

    dubbo:如果我们使用配置中心、分布式跟踪这些内容都需要自己去集成,无形中增加了使用难度。

    Spring Cloud:提供了微服务的一整套解决方案:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等

  • 相关阅读:
    【CSS】盒子模型的计算
    【CSS】定义元素的位置
    【Jenkins】安装插件
    安装【Jenkins】
    Python【unittest】模块
    Python【pyyaml】模块
    CentOS下安装gcc和gdb
    汇编学习笔记(15)综合研究
    汇编学习笔记(14)BIOS对键盘输入的处理
    汇编学习笔记(13)直接定址表
  • 原文地址:https://www.cnblogs.com/lmqblogs/p/9932404.html
Copyright © 2011-2022 走看看