自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 收藏
  • 关注

原创 【测试开发】OKR 小程序端黑盒测试报告

对于没有达成的目标,我们总有放弃的理由。我们的小程序以 OKR 为核心,聚焦于“目标”和“关键结果”,引领用户理清未来成长目标,成为自我进步的设计者、团队发展的推动者。其中你会发现 3G 的时候在配置就是几毫秒的了,其实我们平时的网速大概率 1KB 的延迟为 0ms,打开弱网测试后,默认的 300 就已经很慢了,而其中 3G 算是弱网中较快的了,4G 的话应该称不上是弱网。账号 A 合并账号 B 后,账号 A 没有继承账号 B 的登录能力,比如账号 B 有密码,账号 A 没有,合并后,无法进行登录的操作。

2025-03-26 01:37:46 859

原创 Windows11 拨号无法使用代理

windows 的很多东西都有中文不兼容的问题。

2025-03-26 01:28:42 138

原创 【测试开发】OKR 网页管理端自动化测试报告

我们发现,为了更好地支持用户使用,该项目需要一个管理端来进行基础信息的管理。需要特别说明的是,我们始终将用户隐私放在首位,绝不会干预用户自主管理的OKR内容。管理端的主要功能集中在用户头像管理方面:我们将为用户提供一系列精心设计的默认头像,同时会对个别不适宜的头像进行重置处理。此外,针对极少数可能存在的恶意用户,我们保留了必要的账号封禁权限,以维护良好的服务环境。这样的设计既确保了平台的规范运行,又充分尊重了用户的自主权。

2025-03-21 17:40:00 1013

原创 监听 RabbitMQ 延时交换机的消息数、OpenFeign 路径参数传入斜杠无法正确转义

监听 RabbitMQ 延时交换机的消息数,用 OpenFeign 做 http 客户端,处理 OpenFeign 路径参数传入斜杠无法正常转义的问题

2025-03-05 23:45:53 1102

原创 【企业场景】上线的项目如何进行限流

你可以理解为,固定窗口就是周期为 1s,窗口大小为 1s 的滑动窗口,但滑动是最不平滑的用滑动窗口确实也能一定程度的解决这个问题在固定算法的基础上,允许突发流量的出现,若时间段内的请求数超了,超出的部分可以缓存到 burst 队列,在下一个周期处理,这样就保证请求漏出的速率是一致的,限流范围内的如果桶满了就洒出去了~通过一个固定的速率往令牌桶里输送令牌,而令牌桶有个最大值,达到最大就不能输送令牌了请求需要有令牌才能被处理,如果没获得令牌,则直接拒绝。

2025-02-28 18:02:08 765

原创 【并发编程】线程池任务抛异常会怎么样?

得看线程池的实现,JUC 的线程池(ThreadPoolExecutor)的话若通过 submit 提交任务,会将任务封装到 future 里面或者原任务本身就是 future 任务,而 future 的 run 方法执行的时候,抛出的异常在其内部会被捕获,等到 get 方法的时候才会抛出。哪怕没有封装成 future,例如 execute + runnable,那异常依旧会被捕获。

2025-02-23 23:42:27 329

原创 【框架】参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构

允许访问的角色是否需要认证是否需要授权标注在 Controller 类才有用,若加在类上,则作用于所有方法,若标注在方法上,则以方法上的为准意为此接口的拦截参数/*** User: 马拉圈* <br />* permit: 用户必须是列表中的角色才能访问 <br />* authenticate: 用户需不需要通过认证 <br />* authorize: 用户需不需要通过授权 <br />* 注意: <br />

2025-02-23 23:40:44 787

原创 【MQ】一套为海量消息和高并发热点消息,提供高可用精准延时服务的解决方案

延迟消息如果使用延时交换机来实现,如果数据量过大,就会很占 CPU 资源,轻则时间误差大,重则 RabbitMQ 宕机。

2025-02-09 20:12:57 1019 1

原创 【MQ】Spring3 中 RabbitMQ 的使用与常见场景

但如果不是很要求同步调用,其实也可以用异步调用,如果是单体架构,你可能很快能想到一个解决方案,就是阻塞队列实现消息通知:但是在分布式架构下,可能就需要一个中间件级别的阻塞队列,这就是我们要学习的 Message Queue 消息队列,简称 MQ,而现在流行的 MQ 还不少,在实现其基本的消息通知功能外,还有一些不错的扩展据统计,目前国内消息队列使用最多的还是 RabbitMQ,再加上其各方面都比较均衡,稳定性也好,因此我们课堂上选择 RabbitMQ 来学习。

2025-02-09 20:12:04 1070

原创 【Docker】常见命令与常见案例

指定目录进行构建(一个目录最多有一个 Dockerfile 文件,所以不会有冲突,而且只指定目录不需要每次都指定固定的 Dockerfile 文件名)指令说明示例FROM指定基础镜像ENV设置环境变量,可在后面指令使用COPY拷贝本地文件到镜像的指定目录RUN执行Linux的shell命令,一般是安装过程的命令EXPOSE指定容器运行时监听的端口,是给镜像使用者看的ENTRYPOINT镜像中应用的启动命令,容器运行时调用一键化部署,流水线之类的。

2025-02-07 13:34:06 768

原创 【Mybatis-Plus】使用枚举映射时,如果数据库为 null,返回的是 0 值的枚举对象

使用枚举映射时,如果数据库为 null,返回的是 0 值的枚举对象,中间肯定发生了啥,能力有限就只能网上找找找找找,大海捞针也被我捞着了。原来就是数据库驱动版本低的,int类型(不知道其他类型咋样)元组 null 值返回 0,而不是 null,再加上 mp3.5.3.1 在枚举字段那块,没有正确处理这情况。

2024-11-18 02:06:55 1128

原创 【Spring Validation】Spring3 集成 Bean 参数校验框架

Spring3 集成 Java Bean Validation API,使用 jakarta 包的注解以及自定义校验注解进行无状态参数的校验,与控制层和业务层解耦,不会犯是在控制层校验还是业务层校验的选择困难症了~

2024-09-13 22:49:33 1039

原创 【OpenAPI】Spring3 集成 OpenAPI 生成接口文档

Spring3,jdk21 集成 OpenAPI3,一键生成接口文档,解决响应泛型失效的问题;

2024-09-13 22:44:30 2210 1

原创 【Alibaba Cola 状态机】重点解析以及实践案例

相比Spring statemachine状态机等的复杂,功能多,但是我们实际业务员需要常用的功能,简单使用,所以这类就显得不简洁;再看cola-statemachine相比就是小巧、无状态、简单、轻量、性能极高的状态机DSL实现,解决业务中的状态流转问题。如果是实现业务的话,阿里状态机是不二之选,更加适合我们日常开发!KISS(Keep It Simple and Stupid)

2024-08-20 19:04:20 3278

原创 【Java 刷题记录】模拟

力扣1576、力扣495、力扣6、力扣38、力扣1419;

2024-05-09 17:53:14 445 1

原创 【Java 刷题记录】位运算

力扣191、力扣338、力扣461、力扣136、力扣260、力扣面试题01.01、力扣268、力扣371、力扣137、力扣面试题17.19

2024-05-09 11:39:52 829

原创 【Java 刷题记录】前缀和

牛客DP34、牛客DP35、力扣724、力扣238、力扣560、力扣974、力扣525、力扣1314;

2024-05-07 19:53:30 763

原创 【XXL-JOB】用XXL-JOB灵活的发布定时周期任务

XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等系统架构图设计思想将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。

2024-04-16 17:12:46 2614

原创 【Java 刷题记录】双指针

力扣283、力扣1089、力扣202、力扣11、力扣611、力扣LCR 179、力扣15、力扣18、力扣209、力扣3、力扣1004、力扣1658、力扣904、力扣438、力扣30、力扣76、力扣704、力扣34、力扣35、力扣69、力扣852、力扣162、力扣153、力扣LCR173;

2024-04-09 22:38:12 1034

原创 【JVM】JVM 虚拟机重点解析

程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。并且这个线程的执行时间用完了,接着处理器就会又来执行被挂起的这个线程。

2024-04-09 13:37:38 1361

原创 【企业场景】常见技术场景解析

后台的管理系统,更注重权限控制,最常见的就是RBAC模型来指导实现权限RBAC(Role-Based Access Control)基于角色的访问控制3个基础部分组成:用户、角色、权限具体实现5张表(用户表、角色表、权限表、用户角色中间表、角色权限中间表)7张表(用户表、角色表、权限表、菜单表、用户角色中间表、角色权限中间表、权限菜单中间表)菜单表 ==> 页面的层级结果,每个模块/按钮,存储的是树(页面的核心功能的 DOM 树)

2024-04-09 01:39:15 985

原创 【企业场景】设计模式重点解析

需求:设计一个咖啡店点餐系统。(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:类图中的符号+:表示public-:表示private#:表示protected泛化关系(继承)用带空心三角箭头的实线来表示依赖关系使用带箭头的虚线来表示//添加配料。

2024-04-09 01:30:29 1161

原创 【并发编程】线程池以及场景题

线程池核心参数主要参考ThreadPoolExecutor这个类的7个参数的构造函数任务在提交的时候,,如果没有满则直接添加到工作线程执行如果核心线程数满了,,如果没有满,当前任务存入阻塞队列(出队列的时候也是按照)如果阻塞队列也满了,,如果没到最大线程数,则使用临时线程执行满了进不了队列的任务如果到了最大线程数,即所有线程都在忙着,则走拒绝策略。

2024-04-05 23:00:37 1232

原创 【并发编程】线程安全

全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架,它是构建锁或者其他同步组件的基础框架。

2024-04-05 18:53:15 984 1

原创 【SpringCloud】常见业务问题

tip:这里的限流指的是对接口限流限流的实现方式:Tomcat:可以设置最大连接数Nginx 的漏桶算法网关的令牌桶算法自定义拦截器。

2024-04-05 10:36:02 1383

原创 Java 中 Spring Boot 框架下的 Email 开发

Java 邮箱开发

2024-04-05 10:26:55 1680

原创 【Redis】分布式锁及其他常见问题

一定要结合业务场景来回答问题!要是没有不要硬讲,除非面试官问;接下来面试官将深入发问。分布式情况下的,或者集群情况下的,多个微服务操作同一对象,可能是相同操作(同时改),也可能是不同操作(一个删,一个改…)

2024-04-04 23:15:33 1264 1

原创 【SpringCloud】微服务重点解析

Bean 注入容器法:全局配置文件指定法:局部自己创建类实现 IRule(自定义 IRule 实现 => 自定义负载均衡规则),然后配置一下即可;服务 D 宕机,服务 A 无法建立连接,仍然进行额外的尝试;服务 D 宕机,服务 A 建立了连接,消耗了连接池的连接数,阻塞等待服务 D 的响应/心跳检测服务 D 的活性,甚至请求会重传;服务 A 很可能撑不住就也故障了,而越往上层的服务调用者,阻塞的时间几何增长,也压根支持不了多少并发量,也会雪崩式的崩溃;

2024-03-09 00:53:29 906 1

原创 【常见集合】Java 常见集合重点解析

二叉树二叉搜索树(Binary Search Tree,BST),又叫二叉查找树,有序二叉树;在树中的任意一个节点,其左子树中的每个节点都小于这个节点,右子树则都大于;没有键相等的节点;通常情况下二叉搜索树的增删查改,时间复杂度是 O(logn);恶劣情况的二叉搜索树会退化成链表(时间复杂度退化为 O(n)):而我们需要的是平衡度高的二叉搜索树,才能保证查找效率,AVL树和红黑树都是自平衡二叉搜索树。AVL树通过旋转操作来保持平衡,并且在平衡性上有更严格的要求。

2024-03-08 21:44:42 945

原创 【Redis】Redis 缓存重点解析

Redis 提供了 8 种不同的数据淘汰策略,默认是 noeviction 不淘汰,内存不足则直接报错;其中,LRU:最久未用,以时间为衡量标准,用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高;LFU:最少使用,以频率为衡量标准,会统计每个 key 的访问频率,值越小淘汰优先级越高;平时开发过程中用的比较多的是 allkeys-lru(结合自己的业务场景去说)

2024-03-05 22:53:31 1134

原创 【并发编程】线程基础知识

可执行状态,跟有无 CPU 执行无关,因为 CPU 调度是无序的,如果没有锁、wait、sleep、join 限制,“有无 CPU 执行”几乎是同时;不要不按套路出牌,isInterrupted() 方法为 true ,正确的做法就是收尾了,而不是置之不理,这样 interrupt 方法就没有意义了;退出标志法,使用一个能够被线程 run 方法获取到的布尔类型变量,当别的线程将其设置为 true 时,则线程结束;当然,也可以用 wait 与 notify;对于join方法,如果有时间限制就是。

2024-03-03 00:12:17 872

原创 【框架】MyBatis 框架重点解析

MappedStatement 优点类似与之前 JDBC 的准备态对象,底层也确实是 JDBC;

2024-03-02 14:38:15 965

原创 【框架】Spring 框架重点解析

什么是 AOP?面向切面编程,用户将与业务无直接相关,但却对多个对象产生影响的公共行为和逻辑,将这些抽取成公共模块进行复用,降低耦合度;可以理解为一组业务的效果上的"增强buff";原理就是动态代理即目标方法的执行时机和结果可以由代理决定和处理;你们项目有没有使用到 AOP?如统一处理(拦截器、异常处理器、响应处理器),记录接口访问日志,缓存处理,Spring 实现的事务;

2024-03-02 00:29:54 1363

原创 【MySQL】主从同步原理、分库分表

1. 垂直分库,根据业务进行拆分,高并发下提高磁盘 IO 和网络连接数;2. 垂直分表,冷热数据分离,多表基本互不影响;

2024-02-28 19:47:20 721

原创 【MySQL】事务

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销请求,即这些操作要么同时成功,要么同时失败。补充:单条 sql 是原子的,多条 sql 则需要事务来保证原子性;

2024-02-28 19:43:42 1235

原创 【MySQL】SQL 优化

索引(index)是帮助 MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构**(B+ 树)**,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。了解过索引吗?索引(index)是帮助 MySQL 高效获取数据的有序的数据结构;提高数据检索的效率,降低数据库的 IO 成本,因为不需要全表扫描;通过索引列对数据进行排序,降低数据排序的成本,降低了 CPU 的消耗;索引列:以表中哪个列来创建索引。

2024-02-27 01:35:22 1341

原创 【Nginx】微信小程序后端开发、一个域名访问多个服务

对于后端程序员,其实你们的职责就是干老本行,即写接口和服务,让前端能够访问你的接口就行,必要时需要查看微信小程序开发文档去向微信服务器发请求。但是,微信小程序开发,前端项目部署在微信服务器,只能发 HTTPS 的请求去访问自己的后端,是开发阶段还可以关掉,但是上线了就是强制要求,为了微信小程序上线后功能正常,你必须让请求是 HTTPS 的!

2024-02-24 15:59:25 2347

原创 Spring Security 重点解析

是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。一般Web应用的需要进行认证和授权。验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户经过认证后判断当前用户是否有权限进行某个操作而**认证和授权。

2024-02-22 00:26:00 823

原创 Redis 工具类 与 Redis 布隆过滤器

Redis 基础操作工具 、Redis 序列化、Redis 布隆过滤器3. 布隆过滤器4. Redis工具类5. 查询Redis与Redis设置缓存的技巧伪代码:现实示例:

2024-02-22 00:12:53 882

原创 JWT 重点讲解

JWT 的载荷是可以自定义的,灵活度提高JWT 是一种开放标准,用于在网络上安全地传输信息。它由三部分组成:头部、载荷和签名。头部包含令牌的元数据,载荷包含实际的信息(例如用户ID、角色等),签名用于验证令牌是否被篡改。JWT 的签名是由头部、载荷和密钥生成的,用于验证令牌是否被篡改。签名使用HMAC算法或RSA算法生成。在验证JWT的签名时,客户端使用相同的密钥和算法生成签名,并将生成的签名与令牌中的签名进行比较。令牌刷新是一种机制,用于解决 JWT 过期后需要重新登录的问题。

2024-02-21 13:01:10 1185 1

sql_pirate.js

sql_pirate.js

2024-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除