1. dubbo 是一款高性能的 java RPC (远程服务调用)框架。

2. RPC 框架的性能关键是“序列化”和“网络通信”,dubbo 采用二进制序列化、使用 Socket 而不是 Http 进行网络通信

3. dubbo 的架构

简单解释:服务提供者 、服务消费者 在注册中心进行注册,注册的同时告知注册中心,我提供什么服务,我需要什么服务。注册中心,会将相应服务提供者的地址信息给到消费者,消费者再找到提供者享受服务。

monitor 是监视器,对服务的调用次数和时间进行一个统计。提供者和消费者都会定时发送统计数据给监控中心。

生活举例:淘宝:提供者就是商家,而消费者就是顾客,注册中心则为淘宝平台,监控中心是淘宝数据统计人员(或者理解为网警?)

使用注册中心:

我使用的是 zookeeper 是一个树型的目录服务

默认端口 2181 20880

– 当提供者出现断电等异常停机时,注册中心能自动删除提供者信息
– 当注册中心重启时,能自动恢复注册数据,以及订阅请求
– 当会话过期时,能自动恢复注册数据,以及订阅请求
– 当设置 “ 时,记录失败注册和订阅请求,后台定时重试
– 可通过 “ 设置 zookeeper 登录信息
– 可通过 “ 设置 zookeeper 的根节点,不设置将使用无根树
– 支持 `*` 号通配符 “,可订阅服务的所有分组和所有版本的提供者

Dubbo 的负载均衡(内置4种)

1. RandomLoadBlance  随机 负载均衡,也就是随机选择(dubbo默认的负载均衡策略)

2. RoundRobinLoadBlance  轮询 负载均衡

3. LeastActivelLoadBlance  最少活跃调用数,相同活跃数的随机。 也就是能者多劳(相同的服务,肯定是选择最快的),让慢的 提供者收到更少的请求,因为慢的提供者调用前后的计数差更大

4.ConsistentHashLoadBlance  一致性哈希负载均衡,相同的请求总是落在同一台机器上。(它干熟了,这个活就找他)

check 属性

默认 check = true ,dubbo 会在启动时检查依赖的服务是否可用,不可用则抛出异常,阻止spring初始化完成,可用更早的发现问题