`

Dubbo&SpringCloud学习记要

阅读更多

一、Dubbo(http://dubbo.apache.org/

1.Dubbo工作原理:

1)service层:接口层,provider和consumer接口、实现自己做

2)config层:配置层

3)proxy层:服务代理层,无论provider和consumer都会生成代理、代理之间进行网络通信

4)registry层:服务注册层,负责服务的注册与发现

5)cluster层:集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务

6)monitor层:监控层,对RPC接口的调用次数和调用时间进行监控

7)protocol层:远程调用层,封装RPC调用

8)exchange层:信息交换层,封装请求响应模式,同步转异步

9)transport层:网络传输层,抽象mina和netty为统一接口

10)serialize层:数据序列化层

 

注册中心挂了也能通信、因为本地有缓存

 

2.Dubbo支持哪些通信协议和序列化协议

通信协议:

默认:dubbo协议、单一长连接、NIO异步通信、hessian序列化协议,适用于传输数据量小(每次请求100KB以内)且并发高的场景;

其他:rmi协议、hessian协议、http协议、webservice

序列化协议:hessian(默认)、java二进制、json、soap

 

3.Dubbo支持哪些负载均衡、高可用以及动态代理的策略 

负载均衡策略:

默认:random loadbalance 随机,对provider实例设置不同的权重,按权重分配、权重越大流量越大;

roundrobin loadbalance 轮询

leastactive loadbalance 机器性能越差流量越小

consistenthash loadbalance 一致性hash策略 相同参数的请求一定分发到一个provider,provider挂掉时会基于虚拟节点均匀分配剩余流量

 

集群容错策略:

failover cluster(默认)、failfast cluster、failsave cluster、failback cluster、forking cluster、broadcast cluster

 

动态代理策略:

javassist动态字节码(默认)、其他可通过spi(service provider interface)扩展机制配置

 

4.基于Dubbo如何做服务治理、服务降级、失败重试、超时重试?

服务治理:调用链路自动生成

服务降级:mock机制

失败重试、超时重试:参数设置 

 

5.如何保证幂等性

 每个请求唯一标识、请求处理后的状态标识、请求处理前判断是否已处理过

 

6.如何保证顺序性

要保证顺序的请求分发到同一台机器+内存队列;百分百保证:分布式锁(开销较高)

 

二、Spring Cloud(https://spring.io/projects/spring-cloud

1.核心架构

Eureka 服务注册中心

Feign 服务调用

Ribbon 负载均衡

Zuul/Spring Cloud Gateway 网关

 

 ——来源于石杉码农学院

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics