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

Dubbo的基本使用

时间:2022-09-22 21:35:58浏览次数:46  
标签:基本 Dubbo 调用 服务 服务提供者 RPC 注册 使用 序列化

1、Dubbo的基本介绍

Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

 

1.2、基本概念

 

 

  • 服务提供者Provider:暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者Consumer: 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 注册中心Registry:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
  • 监控中心Monitor:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

 

1.3、RPC

RPC(Remote Procedure Call)是一种进程间通信方式。简单地说就是能使应用像调用本地方法一样的调用远程的过程或服务,可以应用在分布式服务、分布式计算、远程服务调用等许多场景。业界有很多开源的优秀 RPC 框架,例如 Dubbo、Thrift、gRPC、Hprose 等等。

 

RPC 与 HTTP、RMI、Web Service 都能完成远程调用,但是实现方式和侧重点各有不同。

RPC是一种协议规范,可以把HTTP看作是一种RPC的实现,也可以把HTTP作为RPC的传输协议来应用。与HTTP相比,RPC的缺点就是相对复杂,学习成本稍高。

 

1.3.1、序列化和反序列化

  • 什么是序列化?序列化就是将数据结构或对象转换成二进制串的过程,也就是编码的过程
  • 什么是反序列化?将在序列化过程中所生成的二进制串转换成数据结构或对象的过程
  • 为什么需要序列化?转换为二进制串才好进行网络传输嘛
  • 为什么需要反序列化?将二进制串转换成对象才好进行后续处理嘛

 

标签:基本,Dubbo,调用,服务,服务提供者,RPC,注册,使用,序列化
From: https://www.cnblogs.com/wenxuehai/p/16720915.html

相关文章

  • Dubbo概述
    什么是RPCRPC是RemoteProcedureCall的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方案RPC只是实现远程调用的一套标准......
  • tippy.js - 好用的tooltip提示插件使用详解
    1,基本介绍(1)tippy.js 是一款轻量的 tooltip 插件,使用它可以很方便地实现鼠标悬停提示信息效果。GitHub 主页:https://github.com/atomiks/tippyjs官网地址:https://a......
  • Junit使用步骤和Junit-@Before@Afte
    Junit使用步骤白盒测试步骤:1.定义一个测试类(测试用例)建议:测试类名:被测试的类名Test包名:xxx.xxx.xx.test2.定义测试方法......
  • 蓝湖辅助工具使用介绍
    工具下载链接地址(免费):https://download.csdn.net/download/qq_35166501/86565258网页界面  界面展示下载和使用步骤1.打开链接https://download.csdn.net/d......
  • Java使用HttpClient免证书去调用https的方案
    一、依赖引入<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.7</version></dependency>......
  • 计算机基本组成
    计算机五大组成控制器负责按照程序控制其他组成部分的运行。运算器主要功能是进行算术运算、逻辑运算等,其核心在于算术逻辑单元控制器+运算器=CPU(中央处理器)......
  • 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用S
    window服务调试报错:无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NETSTART命令启动它 ......
  • 自定义loader使用说明,以APICloud平台为例
    一、应用自定义loader的作用一直以来,官方发布的AppLoader,只包含了官方模块。而其他开发者的自定义模块、付费模块、第三方SDK模块等都并未加入到loader中,这给开发者在开发......
  • qt的基本控件——按钮控件
    按钮控件一、button控件(按钮控件)1、button通过setText设置文字//在类中定义一个boolisDown;构造中初始化为false,拖入一个button,直接修改名字为连接设备,转到槽写上如......
  • C/C++ 使用四种方法交换两个数(包括不使用第三个变量)
    #include<iostream>#include<string>#include<windows.h>usingnamespacestd;//方式一使用指针voidswap1(int*a,int*b){//指针作为函数的参数intt......