Dubbo简介
Dubbo核心概念
Dubbo官网: https://dubbo.apache.org/zh/
Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现。分布式系统是将一个系统拆分为多个不同的服务
RPC原理
两台机器是提供者和消费者,都要创建两个代理,消费者代理接受到需要远程调用提供者的提供的方法,
将方法和参数序列化,进行网络传输到提供者机器,之后提供者代理解码方法和参数,运行自己的方法,
将结果序列号,进行网络传输到消费者机器,之后消费者解码结果,就能远程使用提供者提供的方法了。
Dubbo特性一览
dubbo设计架构
该图来自Dubbo官网,描述了服务注册中心、服务提供方、服务消费方、服务监控中心之间的调用关系。
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。