首页 > 其他分享 >关于Duubo和Rpc的理解

关于Duubo和Rpc的理解

时间:2023-08-16 20:23:43浏览次数:33  
标签:Dubbo Duubo 调用 服务 框架 Rpc RPC 理解 远程

一.什么是Dubbo,什么是RPC?

Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底>层网络技术的协议。

1.远程调用就是本地机器调用远程机器的一个方法,远程机器返回结果的过程。

2.现在流行的RPC 框架,都会采用TCP 作为底层传输协议。RPC 强调的是过程调用,调用的过程对用户而言是是透明的,用户不需要关心调用的细节,可以像调用本地服务一样调用远程服务

3.目前单机服务已经无法满足更多的流量需求,只有多台服务器才能支撑现有的体系,因此服务越来越多,出现了微服务的RPC框架

 二.Duboo的作用

Dubbo分为三层,第一层的business业务逻辑为自己实现的一些接口或者配置信息

第二层是RPC部分,做一些调用过程,负载,集群容错,代理等功能

第三层Remoting为网络协议和数据转换的封装等

主要有以下功能。
 智能容错和负载均衡。(1.加权随机 2.最小活跃数 3.一致性hash 4.加权轮询 5.最短时间权重响应)
 服务自动注册和发现。
 高度可扩展能力。
 运行期流量调度。
 可视化的服务治理与运维。

三.Dubbo和SpringCloud的区别

Dubbo 是SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。而Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了Spirng、Spirng Boot 的优势之上,两个框架在开始目标就不一致,

Dubbo 定位服务治理、Spirng Cloud 是一个生态。

两者最大的区别是Dubbo 底层是使用Netty 这样的NIO 框架,是基于TCP 协议传输的,配合以Hession 序列化完成RPC 通信。而SpringCloud 是基于Http 协议+Rest 接口调用远程过程的通信,相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是REST 相比RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖。

标签:Dubbo,Duubo,调用,服务,框架,Rpc,RPC,理解,远程
From: https://www.cnblogs.com/developS/p/17636086.html

相关文章

  • 深入理解 Flutter 图片加载原理
    前言随着Flutter稳定版本逐步迭代更新,京东APP内部的Flutter业务也日益增多,Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验,但随之也带来了一些OOM问题,通过线上监控信息和Observatory工具结合分析我们发现问题的原因是由于Fl......
  • 浅谈自己理解的JWT
    1、什么是JWTJWT是由三部分组成,包括头部(Header)、有效载荷(ayload)、签名(Signature)1.1头部是配置信息一般由两部分组成(I.令牌的类型,II.使用的签名算法)1.2有效载荷部分首先包含一些非敏感的数据,其次要包含过期时间(设置有效期)1.3签名部分,是对前两部分......
  • 简单理解QT中的信号和槽
    信号和槽信号和槽之间的连接,实现对象间的通信。信号是一个发出的动作或事件。槽是对应的响应动作。一个信号可以关联多个槽函数,信号也可以连接信号使用信号槽,类必须继承QObject。在类的定义开头需要添加宏定义Q_OBJECT实现方式通过函数指针连接connect(sen......
  • 【单调队列】 单调队列的“扫描线”理解
    【单调队列】单调队列的“扫描线”理解  “如果一个选手比你小还比你强,你就可以退役了。”——单调队列的原理比你强,而且比你影响时间更长。某种意义上,数学思维是生活中的思考的延伸。  算法学习笔记(66):单调队列。引用Pecco的算法笔记。  在这里给出一种扫描线......
  • ABPvNext模块化理解(AI)
    来自你的消息:如何理解ABPvNext模块化?它是怎么实现模块化的?解决了什么问题?如果没有模块化会是什么场景?来自ChatAI的消息:ABPvNext是一种开发框架,它采用模块化的设计理念,使开发过程更加简单、灵活和可扩展。模块化是指将一个系统或应用程序拆分成多个独立的模块,每个模块都有自......
  • 原型链深入理解
      //原型链//1.原型->类//2.原型对象->类中属性与方法组成的一个对象//3.实例对象->创建的实例//4.如何互相转换//原型(它是一个函数)functionUser(){}console.log("原型:",User);User.prototype.username="test......
  • java中对无参构造和有参构造的理解
    构造器的最大作用就是在创建对象时,对对象实例进行初始化。1.一个类即使什么都不写,也会存在无参构造方法。2.无参构造方法没有返回值类型,且方法名称和类名相同。比如:1publicclassStudent{2privateStringname;3privateintage;45publicvoidst......
  • 对线程池的理解
    线程池是一种并发编程的技术,它是管理和重用线程的一种机制,能够有效地提高多线程应用程序的性能和资源利用率。线程池维护一组可重用的线程,可以分配任务给这些线程来执行,从而避免了频繁地创建和销毁线程,减少了系统开销。以下是我对线程池的一些关键理解:线程池的组成:线程池由线......
  • 《深入理解Java虚拟机》读书笔记:Class类文件的结构
    Class类文件的结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的的程序存储格式——字节码(ByteCode),从而实现了程序的......
  • Streamlit 讲解专栏(四):深入理解按钮行为
    文章目录1前言2Streamlit中ifst.button()的使用时机3按钮的逻辑3.1通过按钮显示临时消息的常用逻辑3.2状态保留按钮3.3切换按钮3.4控制流程的按钮3.5动态添加小部件的按钮3.6使用按钮处理耗时或写入文件的过程4常见的按钮反模式4.1按钮嵌套在按钮内部4.2将其他小部件......