美文网首页
dubbo学习

dubbo学习

作者: John13 | 来源:发表于2020-05-06 14:33 被阅读0次

一、核心功能和组件

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

二、注册调用流程

三、10层架构设计

四、dubbo服务治理

  • 过多的服务 URL 配置困难
  • 负载均衡分配节点压力过大的情况下也需要部署集群
  • 服务依赖混乱,启动顺序不清晰
  • 过多服务导致性能指标分析难度较大,需要监控


五、dubbo负载均衡策略

  • Random LoadBalance:(缺省) 随机选取提供者策略,有利于动态调整提供 者权重。截面碰撞率高,调用次数越多,分布越均匀;
  • RoundRobin LoadBalance:轮循选取提供者策略,平均分布,但是 存在请求累积的问题;
  • LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收 更少的请求;
  • ConstantHash LoadBalance: 一致性 Hash 策略,使相同参数请求总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其 他提供者,避免引起提供者的剧烈变动;

六、Dubbo 的集群容错方案

-Failover Cluster(缺省)
失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但 重试会带来更长延迟。

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

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

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

-Forking Cluster
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最 大并行数。

-Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通 知所有提供者更新缓存或日志等本地资源信息。

相关文章

网友评论

      本文标题:dubbo学习

      本文链接:https://www.haomeiwen.com/subject/evcwghtx.html