自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Cloud Alibaba 2023.0.3.3及其组件使用

这里的 GetMapping注解和SpringMVC的注解一样,12.如果使用新版的spring cloud,则需要使用LoadBalancer,和Ribbon一样也需要添加注解,但是LoadBalancer是添加@LoadBalancerClient和配置类,同Ribbon一样,不要将配置类加到Application类能够扫描到的位置,否则将会作为全局配置,所有服务使用相同的负责均衡策略,当然如果想要所有服务都使用同一个策略,就可以放到Application能够扫描到的路径。

2025-09-25 19:55:26 713 1

原创 spring-boot-3.4.5自动装配原理梳理(从run方法开始到实例化的整个过程)

在该方法内部找到我们所有手动注册的beanDefinition,通过遍历找出含有configration注解的beanDefinition名字(也就是我们在run方法中传入的类,也就是含有@SpringBootApplication注解的类),并将该beanDefinition包装成一个BeanDefinitionHolder对象。在这个context构造函数中,首先构造出我们的beanFactory(通过父类构造函数),然后构造出reader,而在这个reader的构造函数中,看最后一行代码。

2025-09-18 12:35:04 631

原创 ThreadLocal弱引用和内存泄漏详解

综上所述,并不是弱引用导致了内存泄漏,而是我们没有移除数据导致的,相反这里使用弱引用反而帮我们降低了内存泄漏的风险,因为GC会清理掉已经没有被强引用的弱引用,所以在我们使用ThreadLocal,get和set等操作的时候触发了ThreadLocalMap的清理机制(清理掉失效的ThreadLocal的数据),从而降低内存泄漏的风险。从上面可以看出,remove方法会清理掉我们的ThreadLocal设置的数据,并且还帮我们清理掉,已经被GC干掉了的ThreadLocal保存的数据。

2025-07-21 16:53:49 826

原创 JVM垃圾收集器及参数调优示例

三色标记法即黑白灰三色标记法,就是从GC roots 根节点出发,其引用到的所有节点都标记为灰色,然后将所有灰色节点都放入集合中,然后再从遍历集合中元素所引用的对象,如果是白色都标记为灰色并放入集合,如果是黑色或者灰色就跳过,直到对象所引用的对象全部被遍历完成后,该对象就被标记为黑色,直到这个循环结束,到最后只剩下黑色和白色节点,所有黑色节点为非垃圾对象,所有白色节点为垃圾对象。1.初始标记,此时仅仅标记GC Roots包含的对象,这些对象所引用的对象不处理,所以这个STW时间非常短(对象很少)。

2025-07-18 16:19:18 1778

原创 JVM中关于对象内存分配和逃逸分析实战示例

2.当执行次数达到JIT的阈值(-XX:CompileThreshold,默认1500次,JDK21 默认使用Graal JIT 编译器,其热点探测机制更智能,此参数弃用),JIT编译器就认为这段代码为热点代码,并将这部分热点代码编译为机器码(JIT的编译是以函数为单位编译的,在这里就是doCal()函数,但其重点是优化整个循环),并且对User对象进行逃逸分析,判断出User对象未逃逸。标量替换的条件:除对象未逃逸外,还要求对象的字段可分解为标量(如基本类型或不可变引用)。

2025-07-17 13:45:02 781

原创 mysql8.0 innodb引擎学习部分笔记(一),简单问题无解答

如果用update来修改id=5的value为200,事务对自身修改的数据 “即时可见”,T1 在更新后再次执行 select 时,虽然仍是 “快照读”,但数据库会优先返回本事务修改后的最新版本(而非初始快照)(并且此时RU事务隔离的事务可以读取到改动);事务提交时,redo log buffer会被写入操作系统缓存(page cache),但不会立即刷盘,而是每秒执行一次刷盘操作。13.limit使用时,如果查到的数据过多,可以使用覆盖索引先查ID,在通过id,join临时表查询数据可以提高效率。

2025-07-16 21:04:50 516

原创 Mysql索引优化

在执行第一个ID=1的,扫描全表扫描中间表(10条数据),获取主键id,这里显示rows=99697,实际是优化器预估值不准确。最后执行第二个ID=1的,通过主键匹配user_profile的主键找到与中间表中主键相等的数据。会分三段,其顺序为先执行Id最大的,id相同的从上到下执行。先执行ID=2的,查询10w数据,保留10条,生成中间表。将读取的排序字段和主键在内存中排序(若数据量超过。排序后的数据已包含所有需要的字段,直接返回结果,通过索引或全表扫描获取满足条件的记录,按排序后的主键顺序,

2025-07-15 01:04:11 1578

原创 mysql已解决问题合集

mysql的innodb引擎采用B+树结构存储索引,如果缓存区足够大,那么会将叶子节点和非叶子节点都存储到缓冲区,否则存储非叶子节点。主键索引叶子节点存储这一行的数据,二级索引存储索引,隐式添加主键在叶子节点,什么是覆盖索引。在Extra中有Using index,那么查询不会回表,如果是Using where回表查询。例如。

2025-07-13 07:53:40 695

原创 mysql的explain学习笔记

这里涉及到主键索引其叶子节点缓存的是整行数据,而用email做的二级索引,其隐式包含了userid,且二级索引包含了所有需要查询的字段,所以采用二级索引查询的数据更少,效率更高。索引B+树的非叶子节点是否存入缓冲区是由缓冲区大小决定的,如果大小足够,会直接将非叶子节点常驻内存,如果不够,会通过LRU变体算法来决策,所以合理配置缓冲池和优化查询模式,可以最大限度减少磁盘 IO,提升性能。其type 为ALL,这是全索引扫描,从b+树叶子节点从链表中扫描,其效率最低。

2025-07-13 00:26:51 685

原创 undolog、redolog、binlog 的作用与联系对比,补充上文信息,以及流程图

事务执行时,先写 undolog 和 redolog(内存缓冲),提交时 redolog 刷盘(prepare阶段),再写 binlog,最后 redolog 标记为commit,三者共同保证事务 ACID 特性与数据一致性。用于事务回滚,记录数据修改前的状态,支持MVCC(多版本并发控制),保证事务的原子性(Atomicity)。简言之:undolog 保证 “能回滚”,redolog 保证 “不丢失”,binlog 保证 “能复制 / 恢复”,三者在事务流程中分工协作,共同支撑数据库的可靠性与扩展性。

2025-07-11 22:55:38 417

原创 mysql日志,redo log、undo log、binlog 之间的存储和联系

此过程中,undo log 用于 “回滚失败的事务”(若 binlog 写入失败,可通过 undo log 回滚,避免 redo log 与 binlog 不一致),而 binlog 不记录 undo log 内容(因回滚操作无需同步到从库)。数据库崩溃恢复时,先通过 redo log 恢复所有已持久化的操作(包括 undo log 的修改),再通过 undo log 回滚未提交的事务(确保未提交事务不影响数据一致性)。再通过 SQL 线程执行 relay log 中的操作,最终与主库数据一致。

2025-07-11 21:50:13 1680

原创 mysql架构

在mysql8.0的时候移除了,命中率低而且缓存比较小,加锁的时候导致需要改缓存,会导致并发性能降低等。” 的模型(直到 8.0 引入线程池插件),连接器会为每个成功建立的连接分配一个独立的服务器线程,负责处理该连接的所有 SQL 请求(解析、执行、返回结果等)。客户端-》连接器-》分析器-》优化器-》执行器------操作存储引擎----》返回。,是否能访问特定数据库等),并将权限信息暂存到连接对应的线程中,后续该连接的所有操作都会基于这些权限进行校验。5.处理子查询和嵌套结构,将其转化为AST的节点。

2025-07-11 04:35:03 543

原创 docker安装mysql和redis

然后外部就可以通过账户密码访问了。mysql -uroot -p密码。#1,登进MySQL之后,2.安装 mysql。

2025-07-10 20:14:13 244

原创 centos8 docker安装

1.首先更新系统并安装必要的依赖:(如果是root账户可以不加:sudo,因为sudo就是Superuser do。6.阿里云的镜像加速器已经不可用了,配置可用的镜像加速器。3.安装最新版本的 Docker CE。提示isactive 表示启动。一、安装docker。

2025-07-10 20:11:31 385

原创 Redis跟MemoryCache对比

Redis跟MemoryCache对比

2022-08-28 16:34:47 569

原创 Jquery在不同的浏览器中出现乱码解决

在js中 encodeURI(encodeURI($("#username").val())) ,进行两次编码, 然后在服务器中采用如下方式解码 String old = request.getParameter("name"); String username = URLDecoder.decode(old, "UTF-8"); 就可以得...

2013-01-01 20:40:17 255

原创 Myeclipse设置字符集编码

1、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。 2、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general-...

2012-12-07 00:54:47 420

原创 forward和sendRedirect的区别

区别一:[img]http://dl.iteye.com/upload/attachment/0077/3575/2aca67d5-ac00-3520-8ab5-f5a9ad39147e.jpg[/img]区别二:forward()方法转向底层实现[img]http://dl.iteye.com/upload/attachment/0077/3577/ca140...

2012-12-02 22:12:01 175

原创 在jsp中表单提交数据到servlet中出现中文乱码问题

首先在jsp开始加上 在servlet中加上 response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8");最后在tomcat下的server.xml 如果还有乱码问题有两种解决办法:1.修改表单的提交方法为post...

2012-11-28 14:29:02 556 1

原创 html中padding和margin的区别

css中padding和margin的区别margin 外边距border 边框padding 内边距也就是说 设置margin 那么他所占据的空白地方会是在边框外面请看下面的图片示例:[img]http://dl.iteye.com/upload/attachment/0077/1473/7e7945ad-7fef-38e8-9...

2012-11-27 21:24:54 176

Spring Cloud Alibaba 2023.0.3.3及其组件使用

Spring Cloud Alibaba 2023.0.3.3及其组件使用

2025-09-25

空空如也

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

TA关注的人

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