首页 > 其他分享 >Dubbo基本使用介绍

Dubbo基本使用介绍

时间:2023-01-29 15:14:37浏览次数:35  
标签:基本 Dubbo 负载 调用 服务 Spring 介绍 Cluster

目录

Dubbo 是什么?

Dubbo 是一款阿里开源的高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。

Dubbo 的使用场景有哪些?

  • 透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

  • 软负载均衡及容错机制:可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。&*

  • 服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

Dubbo 服务器注册与发现的流程?

Dubbo 服务器注册与发现系统图
image


  • 服务容器Container负责启动,加载,运行服务提供者。

  • 服务提供者Provider在启动时,向注册中心注册自己提供的服务。

  • 服务消费者Consumer在启动时,向注册中心订阅自己所需的服务。

  • 注册中心Registry返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

  • 服务消费者Consumer,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

  • 服务消费者Consumer和提供者Provider,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心Monitor。

Dubbo 和 Spring Cloud 关系和区别?

  • Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。

  • Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了 Spring、Spring Boot 的优势,两个框架在目标就不一致,Dubbo 定位服务治理、Spring Cloud 是打造一个分布式的生态。

Dubbo 和 Spring Cloud 区别

  • Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。

  • Spring Cloud 是基于 Http 协议 Restful 接口调用远程过程的通信,相对来说 Http 请求会有更大的报文,占的带宽也会更多。但是 Restful 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体分析。

Dubbo集群提供了哪些负载均衡策略?

Dubbo内置了4种负载均衡策略

  • RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的默认负载均衡策略。

  • RoundRobinLoadBalance:轮询负载均衡。轮询选择一个。

  • LeastActiveLoadBalance:最少活跃调用数,相同活跃数的随机。每收到一个请求,活跃数加1,完成请求后则将活跃数减1。活跃调用数越小,表明该服务提供者效率越高,单位时间内可处理更多的请求。

  • ConsistentHashLoadBalance:一致性哈希负载均衡。相同参数的请求总是落在同一台机器上。

Dubbo的集群容错方案有哪些?

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

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

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

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

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

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

默认的容错方案Failover Cluster

标签:基本,Dubbo,负载,调用,服务,Spring,介绍,Cluster
From: https://www.cnblogs.com/wa1l-E/p/17072691.html

相关文章

  • (转)Markdown基本语法
    转载于https://www.jianshu.com/p/191d1e21f7edMarkdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。相比WYSIWYG编辑器......
  • 基本计算器
    基本计算器给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。示例:输入:s="1+1"输出:2输入:s="2-1+2"输出:3输入:s="(1+(4+5+2)-3)+(6+8......
  • Wlan无线基本概念
    BSS(BasicServiceSet)组成WLAN的基本单元是基本服务集,BSS包含一个固定的AP和多个终端。由AP为终端提供无线通讯服务。BSA(BasicServiceArea)AP无线信号覆盖范围成为基......
  • 电脑截图方法快捷键等介绍
    截图功能1、当您电脑打开了微信,按键盘Alt+A会出现截屏2、当您电脑打开了QQ,按键盘Crtl+Alt+A会出现截屏3、当您电脑打开了钉钉,按键盘Crtl+Shift+A会出现......
  • eBPF 入门开发实践指南一:介绍 eBPF 的基本概念、常见的开发工具
    ​eBPF入门开发实践指南一:介绍eBPF的基本概念、常见的开发工具​​1.为什么会有eBPF技术?​​​1.1.起源​​​​1.2.执行逻辑​​​1.3.架构​​​1.3.1.寄存器设......
  • 防爆气象仪介绍
    防爆气象仪又称防爆一体化气象仪、五参数防爆气象仪,防爆气象仪能实时监测风速、风向、空气温度、湿度、大气压力气象数据,适用在化工园区、加油站等有易燃易爆气体的场所中,可......
  • Markdown基本语法
    Headinglevel1Headinglevel2Headinglevel3Headinglevel4Headinglevel5Headinglevel6boldtextItalictextboldItalictext这是一个引用嵌套快引......
  • 重磅 - Gradle 功能介绍
    五万字长文,带你了解Gradle提供的功能。阅前提示阅读本文前需知晓的几个点:本文档不是面向小白的文档,而是适用于有过一定Gradle使用经验的开发者阅读。关于Gradle......
  • 2021年最新Python讲义:面向对象(OOP)基本概念
    面向对象(OOP)基本概念面向对象编程——​​ObjectOrientedProgramming​​​简写​​OOP​​目标了解面向对象基本概念01.面向对象基本概念我们之前学习的编程方......
  • 5天玩转MySQL:数据库概念、SQL介绍、数据库和数据表基本操作、字符表
    数据库概念数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。数据库:存储数据的仓库数据库分类网络数据库网络数据库是指把数据库技术......