1.dubbo的底层是依赖spring的。
2.dubbo的作用就是给消费端提供接口。
3.dubbo各个节点说明:
Provider ----------------------------- 暴露服务的服务提供方
Consumer ----------------------------- 调用远程服务的服务消费方
Registry ----------------------------- 服务注册与发现的注册中心
Monitor ----------------------------- 统计服务的调用次数和调用时间的监控中心
Container ----------------------------- 服务运行容器
4.Dubbo架构图:
5.dubbo的服务治理图
6.dubbo的Maven依赖:
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.6</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.32.Final</version>
</dependency>
7.dubbo的执行过程:
a.启动容器,加载,运行服务提供者;
b.服务提供者在启动时,在注册中心发布注册自己提供的服务;
c.服务消费者在启动时,在注册中心订阅自己所需的服务。
8.dubbo的集群容错机制:
集群模式 | 说明 | |
Failover Cluster | 失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次) | 默认 |
Failfast Cluster | 快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。 | |
Failsafe Cluster | 失败安全,出现异常时,直接忽略 | |
Failback Cluster | 失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。 | |
Forking Cluster | 并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。 | |
Broadcast Cluster | 广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所有提供者更新缓存或日志等本地资源信息。 |
9.dubbo负载均衡模式
负载均衡模式 | 说明 | |
Random LoadBalance | 随机 按权重设置随机概率 | |
RoundRobin LoadBalance | 轮询 按公约后的权重设置轮询比率。 | |
LeastActive LoadBalance | 最少活跃调用数 相同活跃数的随机,活跃数指调用前后计数差。 | |
ConsistentHash LoadBalance | 一致性 Hash 相同参数的请求总是发到同一提供者。 当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动 |