摘要:
InnoDB 页 InnoDB 是一个将表中的数据存储到磁盘上的存储引擎,即使我们关闭并重启数据库,数据还是存在。而真正处理数据的过程发生在内存中,所以需要把磁盘中的数据加载到内存中。如果是处理写入或修改请求,还需要把内存中的内容刷新到磁盘上,而我们知道读写磁盘的速度非常慢,与读写内存差了几个数量级 阅读全文
2023年4月24日
2022年12月15日
摘要:
结论 设置MySql会话级别事务隔离级别时需要先设置当前会话的事务隔离级别,然后再开启事务,否则新开启的事务隔离级别不是新设置的,而是之前的。 验证过程 1. 查看当前会话的隔离级别 2. 开启事务 3. 设置RC事务隔离级别 4. 其中一个事务更新数据,观察另外一个事务是否可以读取到最新数据 5. 阅读全文
2022年11月25日
摘要:
背景 在分布式架构服务系统中,分布式锁是一种处理幂等的有效方式,记录一下生产级Redisson的使用方式。 SpringBoot引入 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-start 阅读全文
2022年11月20日
摘要:
一、概念 非对称加密方式:使用不同秘钥进行加密解密的是非对称加密方式,使用同一秘钥进行加密解密的是对称加密方式。 公钥、私钥:公共的、对外的秘钥称为公钥。私人的,不对外公开的称为私钥。 使用非对称方式加密总是会生成一对秘钥,一个公钥和一个私钥。 用公钥加密,需要使用相对应的私钥解密。 使用私钥加密, 阅读全文
2022年10月19日
摘要:
OAuth2是什么? OAuth2是一个授权协议。OAuth2.0框架能让第三方应用以有限的权限访问HTTP服务,可以通过构建资源拥有者与HTTP服务间的许可交互机制,让第三方应用代表资源拥有者访问服务,或者通过授予权限给第三方应用,让其代表自己访问服务。 我们需要关心如下角色: 资源拥有者:拥有资 阅读全文
2022年5月28日
摘要:
背景 在最近的工作中发现一个很有意思的BUG,那就是想要的异常被屏蔽了,导致在排查问题的时候,不能及时的找到根本原因,事后觉得这个事情挺有意思的,于是留存记录下吧,方便以后跟踪查阅。 异常屏蔽示例代码 在做核心业务流程处理时程序出现了异常,这时对异常进行了捕获,但是在捕获后又抛出了异常,此时就会屏蔽 阅读全文
2021年12月4日
摘要:
概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是以来用户线程的启动和结束而建立和销毁。根据《Java虚拟机规则》的规定,Java虚拟机所管理的内存将包括一下几个 阅读全文
2021年9月21日
摘要:
MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 搭配 Spring Boot 的使用。 注:本文使用的 mp 版本是当前最新的3.4.2,早期版本的差异请自行查阅文档 官方网站:baomi 阅读全文
2021年8月26日
摘要:
概览 续上篇文章后,继续分析Drui的SQL解析原理,如果没有看上篇文章,可以先浏览下上篇文章:Druid SQL解析原理分析(一),有利于概念的连续性,更容易理解。 由于SQL解析流程过于庞大复制,本篇文章只分析访问者访问AST的主要流程。 流程分析 SQLObject 对象 SQLObject对 阅读全文
摘要:
概览 由于最近的开发功能涉及SQL解析模块,在网上查询了一些有关SQL解析器的解析工具,如:ANTLR、Druid,综合性能、语法支持度、学习成本等因素,选择Druid作为SQL解析的工具。 访问者【VISITOR】模式 Druid采用访问者模式解析SQL,访问者模式,是行为型设计模式之一。访问者模 阅读全文