Dubbo学习一

  • Dubbo是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案、可以和Spring框架无缝集成
  • RPC 指的是远程调用协议,也就是说两个服务器交互数据
核心功能
  • Remoting: 网络通信框架,提供对多种NIO框架抽象封装,包括"同步转异步"、"请求-响应"模式的信息交换方式
  • Cluster: 服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及负载均衡、地址路由、动态配置等集群支持
  • Registry:服务注册,基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或者减少机器
服务发现流程

在这里插入图片描述

  • 去中心化,双方不直接依赖注册中心,即使注册中心全部宕机短时间内也不会影响服务的调用,注册中心只是提供了服务发现
  • 服务提供者无状态,任意一台宕机,不影响使用
Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信吗?

可以通信,启动dubbo时,消费者会从zookeeper拉取注册的生产者的地址接口等数据,缓存到本地。每次调用时,按照本地存储的地址进行调用。

通信框架

默认使用NIO Netty框架

Dubbo有哪些负载均衡策略

-** Random LoadBalance**: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高、调用次数越多,分布越均匀;

  • RoundRobin LoadBalance:轮询选取,平均分布,但是存在请求积累问题
  • LeastActive LoadBalance:最少活跃调用策略,解决慢提供者接收更少的请求
  • ConstantHash LoadBalance:一致性Hash策略,使相同参数请求总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊到其他提供者,避免引起提供者的剧烈变动。
  • 缺省时为Random随机调用。
Dubbo容错方案(集群)
  • Failover Cluster: 失败自动切换,当出现失败,重试其他服务器,通产用于读取操作,但重试会带来更长的延迟。
  • Failfast Cluster: 快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
  • Failsafe Cluster:失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
  • Failback Cluster: 失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作。
  • Forking Cluster: 并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源,可以通过forks = “2” 来设置最大并行数。
  • Broadcast Cluster: 广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所提供者更新缓存或者日志等本地资源信息。
Dubbo默认容错方案(集群)

Failover Cluster

Dubbo服务调用超时

默认会重试两次

Dubbo层级框架设计
  1. ** 服务接口层(Service)**:该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。
  2. 配置层(Config): 对外配置接口,以ServiceConfig和ReferenceConfig为中心。
  3. 服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务端Skeleton
  4. 服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心。
  5. 集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心
  6. 监控层(Monitor): RPC调用次数和调用时间监控
  7. 远程调用层(Protocol):封装RPC调用,以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter.
  8. 信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心。
  9. 网路传输层(Transprot):抽象mina和netty为统一接口,以Message为中心。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值