消息队列测试场景和redis测试场景

news2025/2/27 17:04:40

在这里插入图片描述


一、消息队列测试场景

1、什么是消息队列。你是怎么测试的?

解题思路:
什么是消息队列。
消息队列应用场景。
消息队列测试点列举。

2、什么是消息队列

Broker:消息服务器,提供消息核心服务
Producer:消息生产者,业务的发起方,负责生产消息传输给 broker。
Consumer:消息消费者,业务的处理方,负责从 broker 获取消息并进行业务逻辑处理。

在这里插入图片描述

3、消息队列的应用场景

异步通信
流量削峰
应用解耦
负载均衡
数据同步

4、消息队列的测试点

所属类型注意点测试点
生产者时序不同时序推送消息,先后顺序是否和预期一致
数据正确性内容是否完整
内容是否满足需求
推送推送失败是否有重试
消费者正确性正常消费信息
消息被消费后是否清除
消费者接收到的信息和生产者一致
消费者堵塞,如何处理
幂等(接收到重复消息)

二、redis测试场景

1、Redis 简介

读写性能优异。
数据类型丰富。
Redis 支持数据的备份。
数据自动过期。
发布订阅。
分布式。

2、Redis 的应用场景

读多写少,并发强的场景。(秒杀、微博热搜)
有时间性的业务场景。(短信验证码)
对有序集合数据类型排序。 (排行榜)
对于时效性要求不高。(计数器)
Session 会话缓存。
消息系统。
单线程的特点可以天然用作分布式锁。

3、后端服务和数据库的交互过程(无redis)

在这里插入图片描述

4、后端服务和数据库的交互过程(redis)

在这里插入图片描述

4、Redis 的测试场景与面试题

a、你们的 Redis 使用的是淘汰缓存还是更新缓存,这两者有什么区别?请详细说明。

解题思路:
前提条件:了解缓存的读写流程。

缓存操作流程-读

缓存中有数据。
缓存中没有数据。

在这里插入图片描述

缓存操作流程-写(淘汰缓存)

优点: 操作简单,性能比较好。
缺点:至少会出现一个 cache miss。(当大量的请求访问数据库时,数据库压力很很大)

在这里插入图片描述

缓存操作流程-写(更新缓存)

优点: 基本不会出现cache miss的情况。
缺点: 每次更新数据库都更新缓存,比较影响性能。

在这里插入图片描述

淘汰缓存与更新缓存区别
淘汰缓存:性能较好,至少会出现一个 cache miss(用的多)
更新缓存:性能较差,基本不会出现cache miss

b、Redis 缓存失效问题:怎么定位 Redis 缓存失效问题(缓存坏了)?以及如何解决缓存失效问题?

解题思路:
缓存失效是什么?
缓存不可用之后,大量并发到数据库。

在这里插入图片描述

缓存失效的原因是什么?
缓存过期。
Redis 异常。
网络异常。
缓存更新

在这里插入图片描述

缓存失效研发应该如何处理,测试如何测试?
降级: 禁用部分接口,开放核心接口。
熔断: 禁用部分服务,开放核心服务。

缓存失效相关测试方法

梳理系统中的核心服务列表(通常直接让研发给出对应列表)。
梳理服务中核心接口列表(通常直接让研发给出对应列表)。
模拟 Redis 失效,验证核心服务和核心接口是否还能正常运行。

c、Redis 击穿、穿透区别

Redis 击穿、穿透区别,如何设计用例以及完成测试?

解题思路:
击穿的概念,如何设计测试用例。
穿透的概念,如何设计测试用例。

在这里插入图片描述
击穿的场景的测试用例步骤
获取热 key 的列表(与运维沟通后获取)。
模拟热 key 失效的场景(比如登陆 Redis,直接将热 key 删除)。
查看研发是否有对应的容错机制,保证服务正常运行。

在这里插入图片描述
在这里插入图片描述
穿透的场景的测试用例步骤
不停访问对应服务的接口,传递一个不存在的数据的查询请求。
查看研发是否有对应的容错机制,保证服务正常运行。

击穿与穿透总结

类型穿透击穿
测试目标查看研发是否有对应的容错机制,保证服务正常运行。查看研发是否有对应的容错机制,保证服务正常运行。
测试方法不停访问对应服务的接口,传递一个不存在的数据的查询请求。模拟热 key 失效的场景(比如登陆 Redis,直接将热 key 删除)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门(八)字典(一)

字典(一) 1.字典概述2.一个简单的字典3.使用字典3.1 访问字典中的值3.2添加键值对3.3 先创建一个空字典3.4 修改字典中的值3.5 删除键值对 作者:xiou 1.字典概述 在本章中,你将学习能够将相关信息关联起来的Python字典&#xff…

二叉排序树查找成功和不成功的平均查找长度

理解二叉树的特性: 1)结点:包含一个数据元素及若干指向子树分支的信息。 2)结点的度:一个结点拥有子树的数据成为结点的度。 3)叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。 4)分支结点:也称为非终端结点,度不为零的结点成为非终端结点。 5)结点…

视觉检测设备主要有哪几分类

在如今的工业4.0时代,整个行业都在加速智能制造的脚步,此时我们就不得不说其其中重要的环节——视觉检测,本身其只是属于机器视觉中一个应用的分支,但是因其应用广泛,久而久之很多工厂行业的从业者在遇到需要外观检测问…

GDB 的简单使用

GDB 的简单使用 一、启动调试二、常用调试命令1.list(显示程序源代码)2.break、tbreak、delete、disable、enable 和 info break(断点操作)3.run(运行源程序)4.next 和 step(单步调试&#xff0…

大型语言模型 (LLM) 的两条发展路线:Finetune v.s. Prompt

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 在大型语言模型的研究中,研究者对其有两种不同的期待,也可以理解为是两种不同的路线,具…

【LeetCode: 494. 目标和 | 暴力递归=>记忆化搜索=>动态规划 | 背包模型】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【Spring框架三】——Spirng IOC和DI的实现

系列文章目录 【Spring框架一】——Spring框架简介 Spirng IOC和DI的实现 系列文章目录前言一、IDEA新建Spring 项目二、使用XML文件的方式实现IOC和DI1.创建XML文件2. 通过构造函数的方式进行注入运行结果3.setter方法进行注入 三、使用注解的方式实现IOC和DISpring 5中的常用…

Django SQL注入漏洞 CVE-2022-28346

漏洞简介 Django 在2022年发布的安全更新&#xff0c;修复了在 QuerySet 的 annotate()&#xff0c; aggregate()&#xff0c; extra() 等函数中存在的 SQL 注入漏洞。 影响版本 2.2< Django Django <2.2.283.2< Django Django <3.2.134.0< Django Django <4…

Hadoop 4:Hive

数据仓库概念 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;,是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持&#xff08;Decision Support&#x…

新版Mamba体验超快的软件安装

在一文掌握Conda软件安装&#xff1a;虚拟环境、软件通道、加速solving、跨服务器迁移中详细介绍的conda的基本使用和遇到问题的解决方式&#xff0c;也提到了mamba作为一个替代工具&#xff0c;可以很好的加速conda的solving environemnt过程。但有时也会遇到一个很尴尬的问题…

苹果笔要不要买?apple pencil的平替笔推荐

第一款ipad在10年前就已经出现了&#xff0c;它被用作平板电脑&#xff0c;功能非常强大。而现在&#xff0c;ipad的产品型号更新速度&#xff0c;也让ipad变得更加受欢迎。在这些设备中&#xff0c;ipad的辅助配件扮演着重要角色&#xff0c;比如今天我们要讲的这款电容笔&…

【LeetCode】《LeetCode 101》第八章:分治法

文章目录 8.1 算法解释8.2 表达式问题241. 为运算表达式设计优先级&#xff08;中等&#xff09;932. 漂亮数组&#xff08;中等&#xff09;312. 戳气球&#xff08;困难&#xff09; 8.1 算法解释 分治问题 通过「把原问题分为子问题&#xff0c;再将子问题进行合并处理」&a…

伙伴匹配推荐接口的优化策略【优先队列+多线程分批处理,java实现】

文章目录 接口背景接口问题说明优化策略用户匹配度计算接口改进与测试说明改进前改进一&#xff08;使用优先队列存储编辑距离较小的n个元素&#xff09;改进二&#xff08;使用优先队列存储编辑距离较小的n个元素数据分批查询、分批处理&#xff09;改进三&#xff08;使用优先…

算法修炼之练气篇——练气十九层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

互联网本来很简单,但为啥人们看的那么复杂

昨天有朋友问我互联网&#xff0c;说互联网怎么怎么创新。 我说你看到的都是像。佛说佛有十万身。这都是像&#xff0c;不是相。 &#xff08;1&#xff09; 500多年前&#xff0c;意大利美第奇家族为了给教皇运送全欧洲信民们的捐赠&#xff0c;所以建立了一张天网一张地网。天…

VMware 产品下载汇总 2023 持续更新中

本站 VMware 产品下载汇总&#xff1a;vSphere、NSX、Tanzu、Aria、Cloud… 请访问原文链接&#xff1a;https://sysin.org/blog/vmware/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 本站提供的 VMware 软件全部为 “试用版…

ENVI无缝镶嵌Seamless Mosaic工具镶嵌、拼接栅格遥感影像(所有图像需要含有地理信息)

本文介绍基于ENVI软件&#xff0c;利用“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的操作。 在ENVI软件中通过“Pixel Based Mosaicking”工具实现栅格遥感影像的镶嵌的方法。这一工具虽然可以对不含有地理参考信息的遥感影像进行镶嵌&#xff0c;但是其镶嵌的整体效果并…

数据分析利器之python、IT应用架构规划详解(195页)、600多个人工智能AI工具汇总、营销革命5.0…| 本周精华...

▲点击上方卡片关注我&#xff0c;回复“8”&#xff0c;加入数据分析领地&#xff0c;一起学习数据分析&#xff0c;持续更新数据分析学习路径相关资料~&#xff08;精彩数据观点、学习资料、数据课程分享、读书会、分享会等你一起来乘风破浪~&#xff09;回复“小飞象”&…

Halcon 阈值分割(全局阈值threshold、binary_threshold、动态阈值 dyn_threshold)、直方图

文章目录 1 图像直方图2 全局阈值 threshold()3 binary_threshold()4 动态阈值mean_image() + dyn_threshold()5 代码和原图1 图像直方图 图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素个数。 这种直方图中,横坐标的左…

后端返回文件流时,前端如何处理并成功下载流文件以及解决下载后打开显示不支持此文件格式

一、文件和流的关系 文件&#xff08;File&#xff09;和流(Stream)是既有区别又有联系的两个概念。 文件 是计算机管理数据的基本单位&#xff0c;同时也是应用程序保存和读取数据的一个重要场所。 存储介质&#xff1a;文件是指在各种存储介质上&#xff08;如硬盘、可…