Dubbo基本原理与机制

article/2025/11/7 21:31:14

1、什么是Dubbo

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

2、Dubbo依赖关系

1、服务消费者(Consumer: 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

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

3、监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

 

3、暴露服务

首先 ServiceConfig 类拿到对外提供服务的实际类 ref(如:HelloWorldImpl),然后通过 ProxyFactory 类的 getInvoker 方法使用 ref 生成一个 AbstractProxyInvoker 实例,到这一步就完成具体服务到 Invoker 的转化。接下来就是 Invoker 转换到 Exporter 的过程。Dubbo 处理服务暴露的关键就在 Invoker 转换到 Exporter 的过程Dubbo 协议的 Invoker 转为 Exporter 发生在 DubboProtocol 类的 export 方法,它主要是打开 socket 侦听服务,并接收客户端发来的各种请求,通讯细节由 Dubbo 自己实现。

4、消费服务

首先 ReferenceConfig 类的 init 方法调用 Protocol refer 方法生成 Invoker 实例(如上图中的红色部分),这是服务消费的关键。接下来把 Invoker 转换为客户端需要的接口(如:HelloWorld).

5、Dubbo序列化

专门针对Java语言的:KryoFST等等

跨语言的:ProtostuffProtoBufThriftAvroMsgPackhessian2等等

上述序列化方式的性能多数都显著优于hessian2,所以最好使用其他的序列化

启用Kryo或FST如下

dubbo.protocol.serialization=kryo

6、Dubbo支持协议

Dubbo支持dubbormihessianhttpwebservicethriftredis等多种协议,其默认使用Dubbo协议

Dubbo协议:

   1dubbo 缺省协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
          2、不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。

 

<!--设置默认协议: -->
<dubbo:provider protocol="dubbo" />
<dubbo:service protocol=" dubbo " />

 


http://chatgpt.dhexx.cn/article/WZ8ivkPT.shtml

相关文章

dubbo原理和机制

Dubbo 框架是用来处理分布式系统中&#xff0c;服务发现与注册以及调用问题的&#xff0c;并且管理调用过程。 一&#xff0c;工作流程&#xff1a; 服务提供者在启动的时候&#xff0c;会通过读取一些配置将服务实例化。Proxy 封装服务调用接口&#xff0c;方便调用者调用。…

Dubbo的原理与机制

​ Dubbo 前言 在介绍Dubbo之前先了解一下基本概念&#xff1a; Dubbo是一个RPC框架&#xff0c;RPC&#xff0c;即Remote Procedure Call&#xff08;远程过程调用&#xff09;&#xff0c;相对的就是本地过程调用&#xff0c;在分布式架构之前的单体应用架构和垂直应用架…

Dubbo基础及原理机制

1. 什么是Dubbo&#xff1f; Dubbo是 阿里巴巴公司开源的一个高性能RPC 分布式服务框架&#xff0c;使得应用可通过高性能的 RPC 实现服务的输出和输入功能&#xff0c;可以和 Spring框架无缝集成&#xff0c;现已成为 Apache 基金会孵化项目。 2. 为什么要用Dubbo&#xff1…

Dubbo原理和机制详解(非常全面)

Dubbo是一款Java RPC框架&#xff0c;致力于提供高性能的RPC远程服务调用方案。Dubbo 作为主流的微服务框架之一&#xff0c;为开发人员带来了非常多的便利。 本文我们重点详解 Dubbo 的原理机制 mikechen 目录 Dubbo核心功能Dubbo核心组件Dubbo的架构设计Dubbo调用流程 1️…

大地测量学基础(复习)第一部分

写在前面 这篇博文是用来复习课程“大地测量学基础”的&#xff0c;里面仅列出本人觉得这门课程比较重要的部分&#xff0c;希望能够帮助到有需要的朋友。 课本采用《大地测量学基础》孔祥元&#xff0c;武汉大学出版社。 前面已经有一篇“大地测量学基础&#xff08;复习&…

深入理解ArcGIS的地理坐标系、大地坐标系

1、引言 地理坐标&#xff1a;为球面坐标。 参考平面地是 椭球面,坐标单位:经纬度 大地坐标&#xff1a;为平面坐标。参考平面地是 水平面,坐标单位&#xff1a;米、千米等 地理坐标转换到大地坐标的过程可理解为投影。 &#xff08;投影&#xff1a;将不规则的地球曲面转…

GNSS定位中的不同高度概念及计算

文章目录 高度相关的几个基本概念RTKLIB中高度设置与计算参考文献 由于在GNSS定位中由多种高度表示&#xff0c;不同的高度概念很容易混淆&#xff0c;中英文对应有时候也容易搞混。因此整理了一下常用的两种高度——椭球高、正高的概念与计算&#xff0c;并且标注了对应的英文…

概念讲解:大地水准面 | 地球椭球体 | 参考椭球体 | 大地基准面 | 地图投影

文章目录 大地水准面地球椭球体参考椭球体大地基准面地图投影几个概念之间的关系相关文章 大地水准面 指平均海平面通过大陆延伸勾画出的一个连续的封闭曲面。大地水准面包围的球体称为大地球体。从大地水准面起算的陆地高度&#xff0c;称为绝对高度或海拔。 大地水准面是对地…

地图学的基础知识_天文坐标系_大地坐标系_地心坐标系及其相关概念

学习地图学&#xff0c;由于地理知识欠缺&#xff0c;学习相关投影知识还为时过早&#xff0c;需要复习一些基本概念。 阅读对象:测绘类 地球自然球体: 由地球自然表面所包围的的形体称为地球自然体。 地球自然球体形状:地球不是一个正球体&#xff0c;而是一个极半径略短&a…

大地测量学

大地测量学简答题复习 问&#xff1a;建立国家平面控制网的方法&#xff1f; 答&#xff1a; 常规大地测量&#xff1a;三角测量&#xff08;已知一个点的坐标&#xff0c;又精密测量了1&#xff0c;2点的边长和坐标方位角&#xff0c;依据三角形的正弦定理推测出其他边的长…

[复试——大地测量学]第一章节——2022/12/30

PART 1 大地测量学的定义 是在一定的时间和空间的参考系中&#xff0c;测量和描绘地球形状及其重力场并监测其变化&#xff0c;为人类活动提供地球空间信息的一门学科。 大地测量学的作用 1.建立地面控制网 2.精确测定大地控制点的三维位置以及其重力场参数 大地测量学的…

1985高程基准与全球大地水准面(EGM2008)的关系综述

​按照惯例&#xff0c;先给结论&#xff1a; &#xff08;1&#xff09;1985国家高程基准与EGM2008的差异有严密的理论公式计算&#xff1b; &#xff08;2&#xff09;1985国家高程基准与EGM20008的垂直偏差与参考系、水准模型、选取的水准点有关系 &#xff08;3&#xf…

似大地水准面精化

转载自&#xff1a;http://blog.sina.com.cn/s/blog_64886846010153qi.html 大地高是指以参考椭球面作为高程基准面的高程系统&#xff0c;是地面点沿法线到参考椭球面的距离。 正高是地面点沿重力线到大地水准面的距离。正常高是指从一地面点沿过此点的**正常重力线**到似…

正常高、大地高、海拔高的测绘概念

一、海拔高、大地高 高程是地理学和测量学中对地物高度的一种表达。英文的表达是elevation。与高程相关的两个概念——大地高与海拔高,在实践上有差异,但很容易混淆。 王慧麟等编著的《测量与地图学》(南大出版社,2004年)中对这两个概念有明确表述: 点位沿椭球面的法线至…

大地高、正高和正常高及高程异常

测量学习过程中&#xff0c;这几个高程或许曾困扰过许多人&#xff08;其中也包括我&#xff09;&#xff0c;希望我能在这里把这些说清楚。 可以简单地理解&#xff0c;高程其实就是某点到某个基准面的距离。 这么算下来&#xff0c;对于这几个高程的理解就是怎么理解相对应…

大地高、海拔高 地心纬度、大地纬度/地理纬度

大地测量学模型所表示的地球表面&#xff0c;所有点的当地重力矢量都垂直于该表面&#xff0c;即一个“等位面”&#xff1b;这种形状称为大地水准面&#xff01; 但是由于表面及其不规则&#xff0c;见如下图&#xff1a; 真实的地球据说如下&#xff1a; 地球真实不是一个正球…

大地高、正高和正常高的区别

测量学习过程中&#xff0c;这几个高程或许曾困扰过许多人&#xff08;其中也包括我&#xff09;&#xff0c;希望我能在这里把这些说清楚。 可以简单地理解&#xff0c;高程其实就是某点到某个基准面的距离。 这么算下来&#xff0c;对于这几个高程的理解就是怎么理解相对应…

大地高和正常高、正高的详细说明

测量学习过程中&#xff0c;这几个高程或许曾困扰过许多人&#xff08;其中也包括我&#xff09;&#xff0c;希望我能在这里把这些说清楚。 可以简单地理解&#xff0c;高程其实就是某点到某个基准面的距离。 这么算下来&#xff0c;对于这几个高程的理解就是怎么理解相对应…

【转载】GIS概念解析:大地高 | 海拔 | 正高 | 正常高

一、海拔高、大地高 高程是地理学和测量学中对地物高度的一种表达。英文的表达是elevation。与高程相关的两个概念——大地高与海拔高&#xff0c;在实践上有差异&#xff0c;但很容易混淆。 王慧麟等编著的《测量与地图学》&#xff08;南大出版社&#xff0c;2004年&#x…

大地高、正高和正常高

测量学习过程中&#xff0c;这几个高程或许曾困扰过许多人&#xff08;其中也包括我&#xff09;&#xff0c;希望我能在这里把这些说清楚。 可以简单地理解&#xff0c;高程其实就是某点到某个基准面的距离。 这么算下来&#xff0c;对于这几个高程的理解就是怎么理解相对应…