首页 > 其他分享 >测试也要了解的中间件知识

测试也要了解的中间件知识

时间:2023-08-26 11:55:06浏览次数:22  
标签:服务 测试 数据库 知识 中间件 业务 应用 数据

公众号后台有同学私信问了一个问题:中间件服务,如何做好质量保障工作?

日常我们的测试工作范畴,大多都是业务强相关的,比如:电商业务大多是商品、订单、库存、支付;金融业务则是存取款、清结算等。

而中间件服务很多时候会被我们下意识忽略,或者说测试过程中都会涉及到这些服务组件,但不会专门去针对它们开展质量保障工作。

要做好质量保障工作,对中间件有所了解是必不可少的。这篇文章,我会列举一些常见的中间件,以及它们在日常的质量保障工作中,都在发挥什么作用。

 

如何理解中间件

记得16年时候,刚接触到中间件测试,当时对中间件这个概念不甚了解,问了我司的架构师什么是中间件?

他的回答是:为业务应用提供解耦、复用能力的中介层软件。好吧,限于我当时的专业知识匮乏和技术经验不足,还是无法很好的理解他的意思。

近几年,随着知识储备的增长以及技术实践经验的不断提升,开始对中间件这个术语有了较多的理解。那么如何理解中间件呢?为大家举个例子:

我们(用户)要买房,一般来说是自己去搜集房子的相关信息,比如地段、单价、开发商、资源配套等很多房子的信息,然后综合评估后,决定购买。

但市场上要买房的人太多了,如果每个人都亲自去搜集信息,不断匹配评估,花很多时间去看房子,这样效率实在是太低了,因此就产生了各种房产中介机构(中间件)。

以房地产行业类比软件研发,大概的逻辑是这样:

  • 政府(通信服务商)提供土地(操作系统、通信网络);
  • 开发商(各种服务厂商)拿地(服务器、云服务、基础资源);
  • 建筑公司(各行各业企业)组织盖楼(按照产品设计实现业务需求);
  • 房产中介(中间件应用)整合信息提供咨询带看(业务解耦、能力服用);
  • 购房人群(业务研发人员)看房付款拿钥匙(只关注业务实现,不考虑业务应用如何通信);

这个例子可能不太恰当,换个简单的描述:中国电信提供网络服务,云服务商提供各种服务器资源,公司购买资源然后部署服务提供用户使用,业务研发实现具体的业务功能(比如搜索下单支付)、中间件通过统一接口提供业务应用间的通信、数据传递存储等功能。

如果更简单一点该如何理解中间件的作用呢?大家都知道用户产生的数据最终要存储到数据库,后端业务应用要存储数据就要和数据库建立连接。短链接性能差,长链接资源占用多,这个时候DA(Data Access)层就出现了。

无论是DAO还是DAL,通过封装后端业务应用和数据库之间的链接功能,提供统一的接口和配置方法,业务应用只需要考虑业务需求逻辑的实现,而不用太关注应用如何与数据库连接,是否会对数据库带来性能瓶颈。

 

常见的中间件组件

上文举了一个数据访问的中间件例子,可能有些同学会觉得比较绕,下面列举一些日常工作中常用的中间件,大家应该对中间件会有更好的理解。

中间件层级

中间件名称

中间件作用

基础层

Tomcat、Netty

服务容器

Nacos、Apollo

注册中心、配置中心

接入层

Nginx、SpringCloud Gateway

网关、负载均衡

Grpc、Dubbo、Feign

服务调用、服务间通信

服务层

Kafka、RocketMQ

消息队列

XXX-Job、Elastic-job

任务调度

Redis、Sharding-JDBC

数据存储、数据访问

Canal、Otter

数据同步

Pingpoint、SkyWalking

链路追踪

 

不同层级中间件的作用

上面用房地产行业类比了中间件,也列举了一些日常工作中常见的中间件服务,这些不同的中间件服务在一个完整的软件系统中,发挥着不同的作用。

我尝试用一张思维导图,来说明这些不同的中间件的作用,请看下图。

如上图所示,是一个常见的微服务架构。各中间件的作用大致如下:

  • 用户请求通过DNS解析最终路由到网关层;
  • 网关将用户请求按照访问的URL路由到对应的业务应用;
  • 业务应用在注册中心注册(上线),相关配置在配置中心完成;
  • 不同服务间的调用和数据交互,通过Dubbo这类服务通信中间件;
  • 可缓存的数据在Redis,缓存和数据库之间数据同步通过Canal完成;
  • 业务应用和数据库之间的数据交互通过Sharding-JDBC/MQ类的组件完成;
  • 数据报表之类的非及时数据,通过配置定时任务,然后通过XXX-Job来调度完成;

 

这篇文章仅对中间件做一个简单介绍,并列举了一些常见中间件,然后通过一张微服务架构图来说明各中间件的作用。

具体的中间件测试方法,请期待下一篇文章。

 

标签:服务,测试,数据库,知识,中间件,业务,应用,数据
From: https://www.cnblogs.com/imyalost/p/17658597.html

相关文章

  • 关于git的一些基础知识记录
    一.配置用户信息安装完Git之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过Git对项目进行版本管理的时候,Git需要使用这些基本信息,来记录是谁对项目进行了操作1.空白处鼠标右键,选择GitBashHere输入以下命令:  2.Git的全局配置文件通过gitconfig......
  • 直播小程序源码有用的协议知识:MQTT协议
    MQTT协议分析:MQTT协议中文全称为消息队列遥测传输协议,是一种实时通信协议,适用于物联网场景中。MQTT协议被应用到直播小程序源码平台中,确保了直播小程序源码平台音视频流的传输高效、低延迟,为直播小程序源码平台实现相关的实时互动功能提供了帮助。MQTT协议在直播小程序源码的多种作......
  • Mibew Messenger即时消息系统测试安装使用
    MibewMessenger在线客服系统测试安装使用MibewMessenger是基于Web浏览器的即时消息系统,是一个PHP+MYSQL开源的在线客服系统这里我们用宝塔面板来进行安装下下载Mibew下载地址https://mibew.org/download2这里需要下载基础软件包及中文语言包,基础软件包里没有含中文语言包配置下载......
  • 在线网校教育源码有什么功能 在线网校教育源码的十大功能,解放学习,探索更广阔的知识世
    近来,一则身边的对话引发了人们对于传统学习方式的反思。在这段对话中,学员小轩老师分享了他参加考证培训班的困扰,而另一位则提出了线上教育的种种优势。这个对比让我们更深刻地认识到,线上教育已然成为现代人不可或缺的一部分。 小轩老师在通话中抱怨自己报名的考证培训班导致周......
  • 在线教育系统源码Web版丨知识付费教培授课网校平台开发丨兔知云课堂点燃学习的星途,打
    今天,我们带您一起走进一款教育小程序,这是一个承载着无限学习可能的平台。随着科技的不断进步,教育正焕发出崭新的活力,而这个小程序,正是将教育引向更广阔的未来。 进入小程序,世界在您指尖间展开。您可以轻触屏幕,搜索您所需的资料,或者输入关键词,即刻迎来丰富多彩的学习资源。试卷......
  • php网校系统源码,兔知云课堂:点亮知识的星途,成就未来的每一刻
    在这个充满活力的时代,教育正以前所未有的速度和方式进入我们的生活。而今天,我将向您介绍一款颇具魅力的小程序,它即是——兔知云课堂。 兔知云课堂的魅力犹如点滴的水滴,渗透入我们的知识海洋,让我们的未来充满了无限可能。在这个小程序中,您将会发现一个精心构建的学习世界,一个鲜......
  • 字体大小自动适应DIV--亲自测试有效-tomcat
    <!DOCTYPEhtml><html><head><title>phone设计</title><metacontent="text/html;charset=utf-8"http-equiv="Content-Type"/></head><body><divstyle="......
  • Azure Data Factory(六)数据集类型为Dataverse的Link测试
    一,引言之前有讲过AzureDataFactory的CopyData的操作,演示了将BlobStorage1的数据通过AzureDataFactory复制到BlobStorage2中,今天我们玩一个不一样的,AzureDataverse-》AzureDataverse。开始今天的内容之前,我们先了解一下什么是AzureDataverse?Azur......
  • 知识付费小程序源码系统,兔知云课堂适合你的系统
    在如今信息技术飞速发展的时代,不少人希望通过软件系统来实现各种业务需求,而这些系统也有不同的形式。如何在不同的需求情况下选择适合的系统形式,对于企业的发展和效益至关重要。而兔知云课堂则成为了私域场景下的知识付费解决方案,提供低成本的音视频课程点播系统,帮助您成功实现知......
  • 开源知识付费系统源码:顶层设计与底层逻辑的舞台
    在这个信息爆炸的时代,知识的传递和获取变得越来越便利,而知识付费成为了一种越来越受欢迎的方式。然而,要在知识付费领域取得成功,并不仅仅是提供内容,还需要考虑到底层逻辑和顶层设计。正如一个简洁的表述所示:“底层逻辑有问题,顶层设计有问题。” 在这个振奋人心的时代,兔知云课堂......