- 博客(103)
- 收藏
- 关注
原创 卡特兰数的推理
卡特兰数的前几项为(从第0项开始):1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, …。通项公式fnC2nnn1C2nn−C2nn−1fnn1C2nnC2nn−C2nn−1,其中C2nnC_{2n}^nC2nn表示从2n个不同元素中取出n个元素的组合数。递推公式fn4n−2n1fn−1fnn14n−2fn−1。
2024-09-14 16:45:30 514
原创 记录一次网关无响应的排查
发现jedis官网也有一些对应的issue, 我使用的jedis版本是3.1.0 太久了,导致执行 evalsha命令时,旧的jedis源码 设置了无限长的 jedis操作时间。我发现,一个线程在经过 rateliter的prefilter后, 先是调用 consume方法,获取到锁。1. 使用jstack pid > thread.txt 打印进 thread.txt 文件里。接着在执行 jedis的 evalsha命令时 一直卡在socket.read()的状态。
2024-08-06 22:05:10 282 1
原创 记录一点mybatis的坑
如果想在更近一步,由于是线程复用 或 查询sql未执行 导致 没法执行clearPage,那么 可以写一个切面,在方法执行前,执行一下clearPage。startPage执行后,紧跟的一个查询语句 会被加上limit对应的参数,然后自动执行clearPage(),以免其他语句受到 分页的影响。但是如果我们没有 执行查询语句,那么,这个分页可能会被使用到下面 执行查询的语句中。比如在一次偶然中, 这个查询语句执行到了service里的一个查询语句。
2024-07-13 22:53:08 260
原创 IO多路复用
会返回一个整数值,表示集合中有多少个文件描述符已经准备好。这个数字不一定等于你最初放入集合中的文件描述符总数,因为它只表示那些状态发生变化的描述符数量。函数基于这个集合来检测这些描述符的状态变化,返回准备好的描述符数量,以及通过修改集合来指示哪些描述符已经准备好。集合中所有的文件描述符,看它们是否满足你设定的条件(例如是否可读、可写或有异常)。函数正是基于这个集合来监控哪些文件描述符已经准备好进行读、写或异常处理的。类型的文件描述符集合中添加你感兴趣的文件描述符。也准备好了,但因为你没有监控它,
2024-07-03 23:58:01 297
原创 jvm学习
this居然也会占用一个槽slot局部变量表的槽会被复用!!!但形参和this好像不会被复用在一个方法的执行上下文中,形参和this的Slot都不会被复用。Slot的复用通常发生在不同变量的作用域重叠时,例如一个局部变量在其作用域结束之后,后续在同一作用域层次声明的局部变量可能会复用之前变量释放的Slot。
2024-06-23 22:50:13 266
原创 重学计算机网络
原来只能一个在一个连接上发送一个请求。HTTP/1.0中,客户端必须等待服务器响应一个请求后才能发送下一个请求,导致了请求和响应之间的串行处理。其实通道化和持久化并不矛盾,原本是 一次连接就发送一次请求 然后关闭连接,肯定不会出现一个连接发送多个请求的情况。, 这个持久化并不是磁盘的持久化,而是tcp连接建立的持久化。
2024-05-07 22:35:15 488 1
原创 springcloud gateway
predicate : 就是你定义一些规则,如果满足了这些规则,就去找到对应的路由。约定大于配置,后缀不变,只改前缀。二、自定义过略器和全局过滤器。信号量虽然简单,但是遇到。sentinel持久化。三、sentinel。
2024-03-18 23:07:13 452
原创 nginx初学者指南
在Windows上启动nginx的步骤如下:1. 下载并安装nginx。可以从nginx官网下载适合自己操作系统的版本,一般是zip压缩包,解压到指定目录中。2. 进入nginx的安装目录,找到nginx.exe文件。3. 双击nginx.exe文件,启动nginx服务。4. 启动完成后,可以通过输入http://localhost来访问nginx默认页面,如果看到“Welcome to nginx”字样,说明nginx已经成功启动。
2024-02-03 21:32:10 1274
原创 你会用到的git知识
2. 将暂存区中的修改添加到最后一次提交中:如果你在提交代码之前,发现还有一些修改没有被提交,可以使用 `git add` 命令把这些修改添加到暂存区中,然后使用 `git commit --amend` 命令把这些修改添加到最后一次提交中。3. 合并多个小提交为一个大提交:如果你在开发过程中,经常提交一些小的修改,但是这些修改却没有达到一个完整的功能或者一个稳定的版本状态,那么你可以使用 `git commit --amend` 命令来合并这些小修改为一个大的提交。命令用于修改最后一次提交。
2024-01-12 23:43:57 370
原创 springboot邮件发送
因此,MimeMessage是JavaMail API中的一个基础类,而MimeMessageHelper是Spring Framework中对MimeMessage的封装,提供了更加便捷的API,使得我们可以更加方便地处理邮件消息。一般来讲,模板解析时,会根据String类型的返回值,来返回是哪个html页面,但此时,我们只需要返回一个String 类型的数据,那么,我们就用用上@ResponseBody。对于我们服务器上的静态资源,比如下面这张图片,是可以直接访问到的。
2024-01-11 00:15:56 396
原创 软件测试笔记
一、压力测试1.概述2. 性能测试的指标3.性能测试的分类4.测试工具二、安全测试1.XXS(Cross Site Scripting)三、自动化测试
2024-01-10 21:54:07 373
原创 接入第三方登录
3. 如果用户点击“授权并登录”,则成功跳转到指定的redirect_uri,并跟上Authorization Code(注意此code会在10分钟内过期)。回调地址建议设置为网站首页或网站的用户中心。关于为什么要编码Encode?把后面这一串 识别成了 一个整体。4.获取access Token。避免把 & 识别成普通字符。
2024-01-02 23:19:32 392
原创 springboot单元测试
本篇博客参考下述文章:Spring Boot单元测试入门实战 - 掘金 (juejin.cn)@Before, @BeforeClass, @BeforeEach 和 @BeforeAll之间的不同 - Yaoyaoo - 博客园 (cnblogs.com)
2023-12-10 21:53:00 446
原创 optional
根据Oracle文档,Optional是一个容器对象,可以包含也可以不包含非null值。Optional在Java 8中引入,目的是解决 NullPointerExceptions的问题。本质上,Optional是一个包装器类,其中包含对其他对象的引用。在这种情况下,对象只是指向内存位置的指针,并且也可以指向任何内容。相比之下,在API中返回Optional是明确的声明,其中可能没有值。如果我们要确保不会出现空指针异常,则需要对每个引用进行显式的空检查,如下所示,我们都同意这是很多样板。
2023-12-10 11:04:57 460
原创 Redis基础
firewallsystemctl disable firewalld.service #禁止firewall开机启动。firewallsystemctl stop firewalld.service #停止。firewall-cmd --reload #重启。在关闭时,无法关闭,只好用。kill -9 进程号。
2023-12-09 16:31:13 416
原创 在springboot中引入参数校验
一般我们判断前端传过来的参数,需要对某些值进行判断,是否满足条件。而springboot相关的参数校验注解,可以解决我们这个问题。
2023-12-08 00:16:52 454
原创 git基础知识
所有的配置文件,其实都保存在本地!查看所有配置 git config -l即把和都 列出来以直接编辑配置文件,通过命令设置后会响应到这里。
2023-11-11 19:53:20 250
原创 Mybatis学习
层层递进,SqlSession用来执行sql语句,SqlSession是与数据库的一次会话。通过SqlSessionBuilder的build()方法获取SessionFactory。通过SqlSessionFactory获取SqlSession。1.第一个mybatis程序。
2023-10-31 11:43:23 490
原创 面试准备中........
会话层:建立、管理、终止会话负责在网络中的两节点之间建立、维持和终止通信,如服务器验证用户登录便是由会话层完成的。还有它确定是否需要网络传递,像网页就需要进行网络传递,本地文件保存不许用。路由选择: 内部网关协议;RIP 基于距离,也就是跳数。OSPF:根据代价(自己可以制定),建立链路状态库-表示层:数据的表示:将字符转化为2进制或将2进制转化为字符。加密:对称加密和非对称加密,ssh协议。应用层 :给用户提供操作界面。1.对称加密和非对称加密。
2023-10-28 17:51:29 375
原创 SpringMVC学习
( •̀ ω •́ )✧: SpringMVC是基于MVC开发模式的框架,具备IOC和AOP。MyBatis用来优化持久层, SpringMVC优化控制器。spring是用来整合这两个框架 的框架。
2023-10-28 15:13:09 371
原创 学习vue3
①直接将所有的js都通过script标签引入到html文件中,所有的js资源在web页面中都能通用。②使用js引用js(ES6),模块导入与导出。
2023-10-24 00:00:30 161
原创 Spring()
spring快照版本是最新的版本,未发布。需要用到下面这个不需要配置仓库,直接写在依赖中就行引入spring相关依赖疑惑:1.类加载路径类路径classpath指的是编译后路径即:本项目[或模块目录]/target/[项目或模块名]/WEB-INF/classes原项目中的文件和下的文件页都被打包到了此类路径下。
2023-10-17 17:47:49 168
原创 翻译docker官方文档(残缺版)
正确地排序你的DockerFile指令 会帮你在构建时避免不必要的工作。使用缓存优化构建(build)Dockerfile 最佳实践。
2023-10-11 21:46:16 1633
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人