当前位置: 首页 > news >正文

分布式架构:Dubbo 协议如何做接口测试

传统单体架构是一个应用程序进程内处理完所有的逻辑:一个系统糅合了多个功能,如注册 --登录–充值–余额管理–用户积分等,所有的功能模块都是在一个应用程度里处理完的;一个请求过来–> 到应用程序系统–>数据库处理–>返回结果,这种就是单一架构的系统;这样实现的缺陷耦合性太高,一个大型而又全面的系统,如果修改其中某个模块的代码和bug,很容易造成其他模块的bug,牵一发而动全身。所以,我们想要分而治之。

分布式系统就是一种方法: 一个请求处理有多个系统协同完成。比如上面的案例:注册 --登录 放在一个系统里实现;充值–余额管理放在一个系统里实现;用户积分用一个系统实现。修复某个功能bug可以单独修改这个系统的代码,而不会影响其他的功能模块;子系统之间独立部分,资源隔离,避免相互影响,可以相互远程调用;目的是可以提高系统的可维护性和拓展性。Dubbo分布式体系是分布式的一种典型代表。

在这里插入图片描述

RPC技术

在分布式架构中有一个核心的技术叫做RPC,用来做远程接口调用。系统独立拆分为多个子系统之后,子系统之间的数据交互需简要进行远程调用。
1)RPC: remote produced call,远程过程调用。

  • RPC技术:
    泛指所有能够实现远程数据交互的接口实现技术。http本质也是一种RPC技术实现之一。另外还有GRPC,dubbo-RPC【dubbo协议】都是属于RPC技术实现方式,不同的rpc实现的区别在于使用的协议不一样。
  • 服务提供者: 提供可访问的rpc的接口服务
  • 服务调用者:在程序运行过程中,需要调用其他子系统提供的rpc服务,本质就是接口调用

在这里插入图片描述
服务发现机制

消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与 IP 地址的情况下实现通信;服务提供者的rpc的接口需要的地址+端口等信息,开发人员不能在代码里指定和写死,因为部署的环境是变量。

那么怎么去调用这些接口呢?

分布式技术框架里实现了一个服务发现功能:

  • 当系统需要对外提供一个RPC的接口调用服务的时候,系统启动后自动讲自身的IP+端口+接口地址等信息提交到“注册中心”保存。

注册中心

注册中心是一个独立程序,提供的服务:

1)各个子系统启动后会调用注册中心的接口,把子系统的服务信息提交过去;

2)注册中心保存子系统的服务信息;

3)服务调用者调用接口之前需要在注册中心进行查询具体的服务提供者的信息,如IP+端口+接口地址等信息;

4)调用才能实现接口调用。

在这里插入图片描述
注册中心有很多技术可以实现,但是每种技术的核心目的和工作原理是一样的,所以掌握其中一种就可以了:

  • nacos:阿里巴巴提供的开源注册中心技术
  • zookeeper:独立的一个服务,目前国内广泛使用
  • eureka: 由springcloud老版本提供,用的相对较少。

Jmeter进行Dubbo接口测试

Jmeter测试dubbo结果:

1、插件: 把工具安装包里的插件放到Jmeter的/lib/etc目录下, 重启Jmeter即可。
2、添加线程组,选择dubbo 取样器:里面内容需要根据你的项目具体来填写:
在这里插入图片描述
3、运行后查看结果树里查看接口运行结果即可完成接口测试。

http://www.xdnf.cn/news/229735.html

相关文章:

  • 定时任务xxl-job国产化改造,适配磐维数据库(PostgreSQL)
  • OpenHarmony - 小型系统内核(LiteOS-A)(完),内核编码规范
  • Arduino项目实战与编程技术详解
  • Python爬虫学习路径与实战指南 04
  • (Go Gin)Gin学习笔记(三)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
  • 【思考】欧洲大停电分析
  • 0.安装两个版本的JDK8和JDK17并配置环境变量
  • 用Ai学习wxWidgets笔记——自制wxWidgets开发参考手册(主体)
  • MVC与MVP设计模式
  • 数据接收全流程图(物理网卡 → 应用层)
  • 第16篇:Linux设备驱动程序入门<三>
  • 自定义项目中导入文件import顺序
  • 前端 - 冷加载和热加载有什么区别?
  • DeepSeek谈《凤凰项目 一个IT运维的传奇故事》
  • 设计模式(构建者模式)
  • 【计算机视觉】图像分割:Segment Anything (SAM):通用图像分割的范式革命
  • 芯知识|WT2000T录音芯片应用会议录音设备解析:高保真降噪与低功耗兼得
  • 安卓基础(Looper和Handler)
  • React 第三十六节 Router 中 useParams 的具体使用及详细介绍
  • Docker搜索镜像报错
  • OpenCV 图形API(76)图像与通道拼接函数-----对输入图像进行归一化操作函数normalize()
  • OpenCV的grabCut算法分割图像
  • 六、UI自动化测试06--PO设计模式
  • QT—布局管理器之QStackedLayout篇
  • UE5 项目迁移 注意事项记录
  • 永磁同步电机控制算法--线性ADRC转速环控制器(一阶、二阶)
  • canvas动画:点随机运动 距离内自动连接成线 鼠标移动自动吸附附近的点
  • Q2(流动式)起重机司机理论考试精选题及答案
  • 2025年5月计划(Ue4.0shader源码抄写+ue独立游戏每天一小节)
  • 《多端统一的终极答案:X5内核增强版的渲染优化全解析》