Dubbo

Dubbo

  1. dubbo是什么?
    Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。

  2. dubbo的基本原理

    • 服务启动的时候,provider和consumer根据配置信息,连接到注册中心register,分别向注册中心注册和订阅服务;
    • register 根据服务订阅关系,返回 provider 信息到 consumer,同时 consumer 会把 provider 信息缓存到本地。如果信息有变更,consumer 会收到来自 register 的推送;
    • consumer 生成代理对象,同时根据负载均衡策略,选择一台provider,同时定时向 monitor 记录接口的调用次数和时间信息;
    • 拿到代理对象之后,consumer 通过代理对象发起接口调用;
    • provider 收到请求后对数据进行反序列化,然后通过代理调用具体的接口实现。
      在这里插入图片描述
  3. dubbo注册中心类型
    推荐使用 Zookeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐。

  4. Dubbo 和 Spring Cloud 有什么区别?

    • 最大的区别:
      Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。严格来说,这两种方式各有优劣。虽然在一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。
    • 2.总结:
      Dubbo和Spring Cloud并不是完全的竞争关系,两者所解决的问题域不一样:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目的是微服务架构下的一站式解决方案。非要比较的话,Dubbo可以类比到Netflix OSS技术栈,而Spring Cloud集成了Netflix OSS作为分布式服务治理解决方案,但除此之外Spring Cloud还提供了包括config、stream、security、sleuth等分布式服务解决方案。当前由于RPC协议、注册中心元数据不匹配等问题,在面临微服务基础框架选型时Dubbo与Spring Cloud只能二选一,这也是两者总拿来做对比的原因。Dubbo之后会积极寻求适配到Spring Cloud生态,比如作为SpringCloud的二进制通讯方案来发挥Dubbo的性能优势,或者Dubbo通过模块化以及对http的支持适配到Spring Cloud
      在这里插入图片描述
  5. dubbo都支持什么协议,推荐用哪种?

    • dubbo://(推荐)

    • rmi://

    • hessian://

    • http://

    • webservice://

    • thrift://

    • memcached://

    • redis://

    • rest://

  6. Dubbo内置了哪几种服务容器?

    • Spring Container
    • Jetty Container
    • Log4j Container
  7. 在 Provider 上可以配置的 Consumer 端的属性有哪些?

    • timeout:方法调用超时
    • retries:失败重试次数,默认重试 2 次
    • loadbalance:负载均衡算法,默认随机
    • actives 消费者端,最大并发调用限制
  8. Dubbo默认使用的是什么通信框架,还有别的选择吗?
    Dubbo 默认使用 Netty 框架,也是推荐的选择,另外内容还集成有Mina、Grizzly。

  9. Dubbo支持分布式事务吗?
    目前暂时不支持,可与通过 tcc-transaction 框架实现

  10. dubbo的优缺点

  • 优点:
    • 远程方法调用透明化
      dubbo可以像调用本地方法一样调用远程方法,只需简单配置,无任何API侵入。
    • 容错机制和软负载均衡
      dubbo能够在内网替代nginx lvs等硬件负载均衡器。
    • 服务注册中心自动注册 & 配置管理
      dubbo不需要服务提供者地址写死,注册中心会基于接口名自动查询提供者ip。
      而且如果是使用的类似zookeeper等分布式协调服务作为服务注册中心,就可以将绝大部分项目配置都移入zookeeper集群。
    • 服务接口监控及治理
      Dubbo-admin与Dubbo-monitor提供了完善的服务接口管理与监控功能,能够针对不同应用的不同接口,还可以进行多版本,多协议,多注册中心管理。
  • 缺点:
    • dubbo是专一的,它只支持java,这就是最大的缺点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值