Dubbo 学习记录

1、Dubbo 分布式框架。         采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可。必须依赖JDK 1.6+。

2、Dubbo配置文件是如何加载到Spring中的?

Spring容器在启动的时候,会读取到Spring默认的一些schema以及Dubbo自定义的schema,每个schema都会对应一个自己的NamespaceHandler,NamespaceHandler里面通过BeanDefinitionParser来解析配置信息并转化为需要加载的 bean 对象!

3、 Dubbo三种配置方式

        Spring XML 方式,注解方式,API方式。

4、启动时检查 check 

        Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"。设置为false,服务回复后会自动连上。

5、重试次数配置 retries

        Dubbo 服务在尝试调用一次之后,如出现非业务异常(服务突然不可用、超时等),Dubbo 默认会进行额外的最多2次重试。可自行设置。

6、Dubbo 整体架构分层

        接口服务层(Service):该层与业务逻辑相关,根据provider和consumer的业务设计对应的接口和实现

        配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心服务

        代理层(Proxy):服务接口透明代理,生成服务的客户端Stub 和服务端的Skeleton,以ServiceProxy 为中心,扩展接口为ProxyFactory

        服务注册层(Registry):封装服务地址的注册和发现,以服务URL为中心,扩展接口为RegistryFactory、Registry、RegistryService

        路由层(Cluster):封装多个提供者的路由和负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster、Directory、Router和LoadBlancce

        监控层(Monitor):RPC调用次数和调用时间监控,以Statistics 为中心,扩展接口为MonitorFactory、Monitor和 MonitorService

        远程调用层(Protocal):封装RPC调用,以Invocation和Result为中心,扩展接口为Protocal、Invoker和Exporter

        信息交换层(Exchange):封装请求响应模式,同步转异步。以 Request和Response为中心,扩展接口为Exchanger、
ExchangeChannel、ExchangeClient和ExchangeServer

        网络传输层(Transport):抽象mina和 netty 为统一接口,以 Message为中心,扩展接口为Channel、Transporter、Client、Server和Codec

        数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、ObjectInput、ObjectOutput和ThreadPool。

7、Dubbo 默认使用Netty 通信框架。

8、Dubbo 一般使用Zookeeper 服务注册中心。

9、Dubbo 推荐使用dubbo协议。

10、Dubbo 默认推荐使用Hessian序列化。

11、Dubbo 核心组件

  • Provider:服务的提供方
  • Consumer:调用远程服务的服务消费方
  • Registry:服务注册和发现的注册中心
  • Monitor:统计服务调用次数和调用时间的监控中心
  • Container:服务运行容器

12、 Dubbo 核心功能

        Remoting:网络通信框架。

        Cluster:服务框架,RPC远程过程调用,包括多协议支持,负载均衡,失败容错等。

        Registry:服务注册,基于注册中心目录服务,使服务消费方能动态的查找服务提供方。

13、集群容错模式

        Failover Cluster 失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)。可作用于整体服务提供者,服务消费者,或单独调用方法。为Dubbo默认方式。

        Failfast Cluster 快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。

        Failsafe Cluster 失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。

        Failback Cluster 失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。

        Forking Cluster 并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值