远程调用框架dubbo

【项目实战】Spring Boot工程整合Dubbo框架,实现RPC远程调用 【项目实战】Springboot 整合Dubbo, 项目中引入Dubbo实现远程调用 阅读详情
alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。
基本原理如图:
alibaba远程调用框架dubbo原理 - sun - 学无止境
在我们的系统中,经常会有一些跨系统的调用,如在A系统中要调用B系统的一个服务,我们可能会使用RMI直接来进行,B系统发布一个RMI接口服务,然后A系统就来通过RMI调用这个接口,为了解决容灾,扩展,负载均衡的问题,我们可能会想很多办法,alibaba的这个办法感觉不错。
 
本文只说dubbo,原理如下:
  • ConfigServer
配置中心,和每个Server/Client之间会作一个实时的心跳检测(因为它们都是建立的Socket长连接),比如几秒钟检测一次。收集每个Server提供的服务的信息,每个Client的信息,整理出一个服务列表,如:
serviceNameserverAddressListclientAddressList
UserService192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4172.16.0.1,172.16.0.2
ProductService192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6172.16.0.2,172.16.0.3
OrderService192.168.0.10,192.168.0.12,192.168.0.5,192.168.0.6172.16.0.3,172.16.0.4
当某个Server不可用,那么就更新受影响的服务对应的serverAddressList,即把这个Server从serverAddressList中踢出去(从地址列表中删除),同时将推送serverAddressList给这些受影响的服务的clientAddressList里面的所有Client。如:192.168.0.3挂了,那么UserService和ProductService的serverAddressList都要把192.168.0.3删除掉,同时把新的列表告诉对应的Client 172.16.0.1,172.16.0.2,172.16.0.3;
当某个Client挂了,那么更新受影响的服务对应的clientAddressList
ConfigServer根据服务列表,就能提供一个web管理界面,来查看管理服务的提供者和使用者。
新加一个Server时,由于它会主动与ConfigServer取得联系,而ConfigServer又会将这个信息主动发送给Client,所以新加一个Server时,只需要启动Server,然后几秒钟内,Client就会使用上它提供的服务
  • Client
调用服务的机器,每个Client启动时,主动与ConfigServer建立Socket长连接,并将自己的IP等相应信息发送给ConfigServer。
Client在使用服务的时候根据服务名称去ConfigServer中获取服务提供者信息(这样ConfigServer就知道某个服务是当前哪几个Client在使用),Client拿到这些服务提供者信息后,与它们都建立连接,后面就可以直接调用服务了,当有多个服务提供者的时候,Client根据一定的规则来进行负载均衡,如轮询,随机,按权重等。
一旦Client使用的服务它对应的服务提供者有变化(服务提供者有新增,删除的情况),ConfigServer就会把最新的服务提供者列表推送给Client,Client就会依据最新的服务提供者列表重新建立连接,新增的提供者建立连接,删除的提供者丢弃连接
  • Server
真正提供服务的机器,每个Server启动时,主动与ConfigServer建立Scoket长连接,并将自己的IP,提供的服务名称,端口等信息直接发送给ConfigServer,ConfigServer就会收集到每个Server提供的服务的信息。
 
优点:
1,只要在Client和Server启动的时候,ConfigServer是好的,服务就可调用了,如果后面ConfigServer挂了,那只影响ConfigServer挂了以后服务提供者有变化,而Client还无法感知这一变化。
2,Client每次调用服务是不经过ConfigServer的,Client只是与它建立联系,从它那里获取提供服务者列表而已
3,调用服务-负载均衡:Client调用服务时,可以根据规则在多个服务提供者之间轮流调用服务。
4,服务提供者-容灾:某一个Server挂了,Client依然是可以正确的调用服务的,当前提是这个服务有至少2个服务提供者,Client能很快的感知到服务提供者的变化,并作出相应反应。
5,服务提供者-扩展:添加一个服务提供者很容易,而且Client会很快的感知到它的存在并使用它。
STM32F103ZE驱动PMW3901光流模块,从SPI配置到数据读取的完整避坑指南 本文详细解析了STM32F103ZE驱动PMW3901光流模块的全过程,从SPI配置、硬件连接到数据读取与处理,提供了完整的避坑指南。重点介绍了SPI参数配置、初始化序列优化、运动数据滤波等关键技巧,帮助开发者快速实现精准的光流检测。 阅读详情

相关推荐

ESP32 驱动 SYN6288 语音合成:Arduino IDE 下实现中文数字混合文本的智能播报

本文详细介绍了如何在Arduino IDE环境下使用ESP32驱动SYN6288语音合成模块,实现中文数字混合文本的智能播报。通过硬件选型、开发环境搭建、编码转换原理、命令帧构造及串口通信实战等步骤,帮助开发者快速掌握语音播报技术。文章还提供了混合文本处理技巧和常见问题排查方法,适合智能硬件开发者参考。

weixin_42553471的博客 448

Dubbo——远程(RPC)调用原理

摘要 主要是讲述Dubbo的RPC调用原理。并将原理和源码进行分析和测试。随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 垂直应用架构:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,

庄小焱 8075

Ubuntu升级遇到grub-efi-amd64-signed报错?3步搞定这个烦人的EFI目录问题

本文详细解析了Ubuntu系统升级时遇到的“grub-efi-amd64-signed”报错及“cannot find EFI directory”问题。通过剖析UEFI启动机制与EFI系统分区原理,提供了从诊断到修复的三步解决方案,帮助用户快速解决因EFI目录未挂载导致的升级中断,确保系统引导正常。

assembly8low的博客 585

Dubbo实现服务远程调用的原理分析

实践中,通常在服务提供方使用@DubboService注解暴露服务,服务调用方使用@DubboReference注解远程注入,然后在应用程序中添加@EnableDubbo注解及相关配置,就能实现远程服务调用。但是调用方只有接口信息,是如何实现远程服务的调用呢?

kyrielx的博客 758

手把手教你用vLLM在昇腾910B上部署Qwen3-Embedding-8B模型(保姆级避坑指南)

本文详细介绍了如何在昇腾910B芯片上使用vLLM推理引擎部署Qwen3-Embedding-8B模型的全流程,包括环境准备、vLLM-ascend定制化安装、模型获取与校验、环境变量配置、服务启动参数优化、性能压测及生产级部署建议。特别针对昇腾生态的开发者,提供了保姆级的避坑指南和实用技巧,帮助实现高效稳定的模型部署。

weixin_28726671的博客 464

基于FPGA的数据采集系统(一)

整体系统设计 本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下: 图1:FPGA数据采集系统框图 从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D..

phflovelt的博客 2万+

dubbo原理,如何实现服务调用

Dubbo 的服务调用原理基于模型,通过动态代理、网络通信、负载均衡、容错机制等实现了分布式服务之间的透明调用。其核心过程包括服务的注册与发现、服务的远程调用以及服务结果的返回。动态代理:Dubbo 使用动态代理技术将本地方法调用转换为远程调用。服务注册与发现:通过注册中心管理服务的注册与发现。负载均衡与容错:Dubbo 提供多种负载均衡和容错策略,确保服务调用的高可用性。网络通信:基于 Netty 的高效网络通信框架,支持多种协议和序列化方式。

weixin_39304656的博客 1709

SI好文翻译:铜箔表面纹理对损耗的影响:一个有效的模型(一)

Paul G. Huray发表在DesignCon2010的提出铜箔表面雪球模型的论文。第一部分说明之前的铜箔表面模型只适用于5GHz以内,超过5GHz后就不再准确。

小孟同学的博客 2172

alibaba远程调用框架dubbo原理

alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。 基本原理如图: 在我们的系统中,经常会有一些跨系统的调用,如在A...

weixin_30326741的博客 238

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 484

编程实践:寒武纪-LLM&VLM模型量化&部署

本文介绍了在MLU370-S4平台上对大模型(LLM/VLM)进行量化的两种方法:SmoothQuant和WeightOnly。以Qwen2-VL-2B模型为例,详细说明了两种量化方式的命令行参数配置,包括必须设置的per_channel选项和量化参数调整建议。量化完成后,提供了模型部署的具体命令示例,包含设备分配、端口设置、并行度等关键参数。文章强调在MLU370芯片上需要手动设置block_size,并指出两种量化方式只能二选一使用。配套资料已上传至百度网盘供参考。

微风❤水墨 507

dubbo原理_dubbo学习(八)远程调用原理

一、Dubbo远程调用流程首先在客户端启动时会从注册中心拉取和订阅对应的服务列表,Cluster会把拉取的服务列表聚合成一个invoker,每次RPC调用前会通过Directory#list获取providers地址。获取这些服务列表给后续路由和负载均衡使用。在①中主要是将多个服务聚合成一个invoker。在框架内部另外一个实现Directory接口是RegistryDirecto...

weixin_39915204的博客 853

微信小程序 - [wxapplib]] backgroundfetch privacy fail {“errno”:101,“errMsg”:“private_getBackgroundFetchDa

微信小程序报错之backgroundfetch privacy fail,微信小程序报错WAServiceMainContext.js:1 [wxapplib]] backgroundfetch privacy fail {“errno“:101,怎么解决?问题出现:调用wx.chooseMessageFile报错(开发者工具中正常)用户隐私协议中未声明小程序使用此功能,安卓真机调试报错:backgroundfetch privacy fail ,怎么解决?微信小程序[wxapplib]] backgrou

🏆 前端领域优质创作者 1万+

RPC远程调用框架Dubbo

RPC(Remote Procedure Call)远程过程调用,它是一种通过网络从远程计算机程序上请求服务。大白话理解就是:RPC让你用别人家的东西就像自己家的一样。屏蔽远程调用跟本地调用的区别,让我们感觉就是调用项目内的方法隐藏底层网络通信的复杂性,让我们更加专注业务逻辑。常用的RPC框架RPC是一种技术思想而非一种规范或协议。阿里的 Dubbo/Dubbox、Google gRPC、Spring Cloud。

m0_65013257的博客 1513

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Marco's Java【Dubbo 之手写Dubbo框架实现远程调用】

前言 关于Dubbo入门的网上教程也特别多,因此我没有专门出关于Dubbo的系列博文(主要呢… 也是在忙些工作上的事儿),用Dubbo特别简单,但是想要把Dubbo学好,学精还得花费不少时间的,特别是Dubbo的源码是非常值得研究的!有时间会再出一套关于Dubbo的源码解析,那么本篇博文呢,咱也不讲别的,主要是带各位看看Dubbo最核心的部分,也就是远程调用是如何实现的,如果这个给弄明白了,那么你...

馬克兒的私人博客 870

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RPC远程调用框架dubbo底层原理,mini-dubbo远程调用实现

RPC远程调用框架 今天我们来聊一聊远程调用这个技术点:通俗的讲就是调用远端(另外一台服务器应用上)的方法,当时了解这个RPC的时候是在dubbo这个框架并且自己应用了dubbo,只是会简单的使用,但是并没有搞懂它底层如何如何实现方法的调用的,带着这些疑问自己也一直在不断的学习,有幸在前公司参加过一个网关框架的开发,所以对RPC框架的底层有了深厚的理解,通过自己了解,学习,然后自己实践应用,我自己封装了一套小型的RPC框架,说白了就是dubbo的阉割版,所以我还取名叫做mini-dubbo,我放到了git

weixin_44477207的博客 351

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

实现远程调用_阿里dubbo框架实现RPC远程调用服务

首先由于传统的基于controller,service.mapper的开发模式,对于应对各种复杂的逻辑而言不利于实现代码的复用以及维护,从而不断衍生出各种服务架构,其中SOA面向服务架构便是比较流行的一种,而阿里巴巴的dubbo框架则将其发挥得淋漓尽致,与spring又是无缝连接,所以掌握dubbo框架也是程序员的必备技能. 下面举个例子来实现简单的调用过程(面向新手):...

weixin_39923110的博客 198

(八)整合 Dubbo框架 ,实现RPC服务远程调用

整合 Dubbo框架 ,实现RPC服务远程调用1、Dubbo框架简介1.1 框架依赖1.2 核心角色说明2、SpringBoot整合Dubbo2.1 核心依赖2.2 项目结构说明2.3 核心配置3、案例实现3.1 服务远程调用3.2 接口超时配置3.3 接口多版本配置 1、Dubbo框架简介 1.1 框架依赖 图例说明: 图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的

爱是与世界平行 769

Dubbo框架实现RPC远程调用包括nacos的配置和初始化

这个技术我是直接在项目中运用并且学习的,所以我写笔记最优先的角度就是从项目背景出发继上一次API网关完成了这个实现用户调用一次接口之后让接口次数增多的操作之后,又迎来了新的问题。就是我们在调用接口的时候需要对用户进行校验,对调用的接口是否存在进行验证。从这个需求出发,我们第一反应想到的解决办法是什么,应该是在api-gateway项目中也来引入一下这个数据库配置,包括三层架构重新写一轮,包括实体类也需要引入一下。

m0_73966521的博客 1539

新人一看就懂:Dubbo+Zookeeper的RPC远程调用框架demo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现

程序员云帆哥的博客 4866

02-Dubbo远程调用框架学习

Dubbo简述: 1.Dubbo的背景 随着互联网的发展,网站的规模不断的扩大,常规的垂直应用框架已经无法应对业务快速膨胀的需求,分布式服务框架以及流动计算架构势在必行,而一个治理系统确保架构有条不紊的演进。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191222212554952.png?x-oss-process=image/watermark,ty...

qq_31683583的博客 159

新人一看就懂:Dubbo3 + Nacos的RPC远程调用框架demo

之前有写过Dubbo2+Zookeeper的RPC远程调用框架demo,因为Dubbo3出来已经一段时间了,加上Zookeeper这玩意很少有人用了,所以结合实下流行的Dubbo3+Nacos搭建一套RPC远程调用框架demo。Nacos也是阿里出的,我前面的文章也有写过,是一个优秀的注册中心和配置中心。

程序员云帆哥的博客 3702

SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用

一、Dubbo框架简介 1、框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的表示只对 Dubbo 内部交互。 2)图中背景方块 Consumer, Provider, Registry, Monitor 代表部署逻辑拓扑节点。 3)图中......

【积累】,是一个长期持续的过程。 2152
上一篇: Dubbo是什么
下一篇: dubbo 学习笔记 -- provider端
ichsonx
博客等级 码龄19年 202粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值