Dubbo笔记-0-概述

Dubbo思想

微内核 + 富插件

Dubbo特性

分类 特性
面向接口代理的高性能RPC调用 提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用的底层细节
服务与自动发现 支持多种注册中心服务,服务实例上下线实时感知
运行期流量调度 内置条件,脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能
负载均衡 内置多种负载均衡策略,只能感知下游节点的健康状况,逐渐减少调用延迟,提高系统吞吐量
高度可扩展能力 微内核 + 富插件,所有核心能力(如Protocol,Transport,Serialization被设计为扩展点,平等对待内核实现和第三方实现)
可视化的服务治理与运维 提供丰富服务治理,运维工具,随时查询服务元数据,服务健康状态及调用统计,实时下发路由策略,调整配置参数

Dubbo解决什么问题

  • 高性能,透明的RPC调用
    Dubbo可以让开发者像调用本地的方法一样调用远程服务,而不需要显式在代码中指定是远程调用,整个过程对上层开发者透明,Dubbo会自动完成后续操作,如负载均衡,路由,协议切换,序列化等,开发者只需要接受对应的调用结果即可

  • 服务的自动注册与发现

  • 自动负载均衡与容错
    Dubbo提供了完整的集群容错机制,可以实现软件层面的负载均衡,以此降低硬件的压力,Dubbo还提供了调用失败的各种容错机制,如Failover,Failefase,结果集合并等.

  • 动态流量调整
    在应用运行时,某些服务节点可能因为硬件原因需要减少负载,或者某些节点需要人工手动下线,又或者需要实现单元化的调用,灰度功能;Dubbo提供了管理控制台,用户可以在界面上动态地调整每个服务的权重,路由规则,禁用/启用,实现运行时的流量调度

  • 依赖分析与调用统计
    当应用规模进一步提升,服务间的依赖关系变得错综复杂,甚至分不清那个应用要在哪个应用之前启动,架构师都不能完整地描述应用的架构关系.服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?Dubbo可以接入三方APM做分布式链路追踪与性能分析,或者使用已有的独立监控中心来监控接口的调用次数及好事,用户可以根据这些数据反推出系统容量