Dubbo泛化调用

devtools/2025/1/19 12:55:45/

本文记录下利用dubbo泛化调用实现网关server收http请求,然后转发给dubbo服务,然后收到dubbo响应的功能原理。

关键点1:dubbo泛化调用。可根据(注册中心地址、接口名,方法名,参数类型)唯一确定一个dubbo服务。

关键点2:springboot events。客户端dubbo服务启动后会发送ServiceBeanExportedEvent事件。

所以我们的网关server要实现收http发dubbo思路就很清楚了:我们为使用dubbo的后端服务提供一个注解@MyGateWayMapping(“/mapPath”),然后再写一个继承Springboot applicationEvent类,然后这个派生类负责在dubbo启动后把(dubbo注册中心地址,dubbo服务接口名,方法名,参数类型,@MyGateWayMapping中记录的映射路径)注册到网关,这样就实现了dubbo服务一起动,我们的网关就能收到注册信息,这样http请求@MyGateWayMapping中指定的路径(这里是/mapPath)的时候我们就知道要转发给后端哪个dubbo服务,既然知道了所有信息(dubbo注册中心地址,dubbo服务接口名,方法名,参数类型)我们就可以通过dubbo泛化调用实现远程调用后端dubbo服务了。我们从http中取出参数,然后传递给genericService就行了。补充说明一下:genericService使用的参数是map,也就是我们把参数包装成map后,传给genericService,这样dubbo后端服务收到请求的时候,dubbo框架会自动帮我们把map转成对应的结构体。genericService.$invokeAsync会返回一个Object对象,实际也是个map,我们返回响应给httpClient的时候只需要把这个map对象序列化成Json对象后直接作为http响应返回即可,客户端自己去解析,因为网关只是一个转发功能。

demo:略,公司最近不允许上传代码


http://www.ppmy.cn/devtools/151814.html

相关文章

软件测试—接口测试面试题及jmeter面试题

一,接口面试题 1.接口的作用 实现前后端的交互,实现数据的传输 2.什么是接口测试 接口测试就是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑关系 3.接口测试必要性 1.可以发现很…

【HarmonyOS-开发指南】

HarmonyOS-开发指南 ■ DevEco Studio■ ArkTS■ ArkUI■ ArkCompiler■ DevEco Testing■ DevEco Device Tool■ DevEco Service ■ DevEco Studio 添加链接描述 ■ ArkTS 添加链接描述 ■ ArkUI ■ ArkCompiler ■ DevEco Testing ■ DevEco Device Tool ■ DevEco S…

【Rust的2种线程锁 阻塞 vs 挂起】

async_std::sync::Mutex 和 std::sync::Mutex 之间的主要区别在于它们如何处理线程阻塞和异步编程模型。以下是两者的关键差异: 标准库的 Mutex (std::sync::Mutex) 同步阻塞:当一个线程尝试获取 std::sync::Mutex 的锁时,如果锁已经被其他线…

C++ QT中Q_Q和Q_D是什么?怎么使用?本质是什么?C++仿写

1.QT中Q_Q和Q_D是什么&#xff1f; Q_Q可以得到外部可以访问的类指针Q_D可以得到内部封装&#xff0c;外部不可达的类指针 2. 怎么使用&#xff1f; 上代码 APrivate.h #pragma once #include <QtCore>class A;class APrivate {Q_DECLARE_PUBLIC(A) public:APrivate(…

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写内核 LED HDF 驱动程序

接下来编译 LED 驱动&#xff0c;该驱动用于在基于华为设备框架&#xff08;HDF&#xff09;的系统中控制 LED 灯的开关&#xff0c;完整代码如下所示&#xff1a; 更多内容可以关注&#xff1a;迅为RK3568开发板篇OpenHarmony

挖掘机检测数据集,准确识别率91.0%,4327张原始图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注

挖掘机检测数据集&#xff0c;准确识别率91.0%&#xff0c;4327张图片&#xff0c;支持YOLO&#xff0c;COCO JSON&#xff0c;PASICAL VOC XML等多种格式标注 数据集详情 数据集分割 训练组70&#xff05; 3022图片 有效集20&#xff05; 870图片 测试集10&…

vim练级攻略(精简版)

vim推荐配置: curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh 0. 规定 Ctrl-λ 等价于 <C-λ> :command 等价于 :command <回车> n 等价于 数字 blank字符 等价于 空格&#xff0c;tab&am…

Wi-Fi 7、Wi-Fi 6 与 5G、4G 的全方位对比

随着无线通信技术的飞速发展&#xff0c;Wi-Fi 7、Wi-Fi 6&#xff0c;以及5G、4G 已经成为人们生活和工作中不可或缺的网络技术。无论是家庭网络、高速移动通信&#xff0c;还是工业物联网&#xff0c;这些技术都在发挥各自的作用。那么&#xff0c;它们之间有什么区别&#x…