Dubbo泛化调用

news/2025/1/18 0:50:58/

本文记录下利用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/news/1564018.html

相关文章

.Net MVC中视图的View()的具体用法

在控制器中我们执行完逻辑之后,然后就是要准备开始跳转到视图中,那么该如何指定跳转的视图呢? public IActionResult Index() {return View(); } 如果View中参数,他默认寻找的视图路径是/Views/控制器名/方法名 如果找不到&#x…

Windows安装Jenkins——及修改主目录、配置简体中文、修改插件源

一、简介 Jenkinshttps://www.jenkins.io/zh/ Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。 二、Windows安装配置Jenkins2.479 2.1、J

探索Vue.js:提升前端开发的利器

Vue.js是一个渐进式的JavaScript框架,主要用于构建用户界面和单页应用(SPA)。由于其灵活性,Vue可与其他库或现有项目轻松整合,成为开发者心中的明星。它的核心在于实现可复用的组件,简化前端开发的复杂性&a…

2025-1-15-十大经典排序算法 C++与python

文章目录 十大经典排序算法比较排序1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序 非比较排序8. 计数排序9. 桶排序10. 基数排序 十大经典排序算法 十大经典排序算法可以分为比较排序和非比较排序: 前者包括冒泡排序、选择排序、插入排序、希…

K8s 之 Pod 高级用法(Advanced Usage of Pods in Kubernetes)

K8s 中之Pod 的高级用法 作为 Kubernetes 的核心编排对象之一,Pod 承载了丰富的信息。其中,资源定义(如 CPU 和内存)和调度相关的字段将在我们讨论调度器时详细介绍。本文中,我们将首先探讨一种特殊的 Volume 类型&am…

python发送get请求与post请求

一.首先要用到requests库 import requests requests库的不定长参数有13个 其中params,json,headers,data最常用 二.get案例一: (查看对应首页信息) url"http://baidu.com" pub_params {"application":"app",{"application_client_ty…

如何保证光谱相机的稳定性和可靠性

光学系统设计与制造 高质量光学元件:采用高精度研磨和镀膜的透镜、棱镜、光栅等光学元件。优质的透镜可以减少像差和色差,确保光线准确聚焦;高质量的镀膜能够提高光学元件的透光率,降低反射损失,并且增强对不同波段光…

leetcode 面试经典 150 题:汇总区间

链接汇总区间题序号228题型数组解法一次遍历法难度简单熟练度✅✅✅ 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属…