- 博客(5)
- 收藏
- 关注
原创 Spring 如何解决循环依赖
在 Bean 的属性填充过程中,如果需要依赖其他 Bean,则会提前暴露一个工厂方法,用于生成当前 Bean 的早期引用,并将其放入二级缓存。Spring 的三级缓存是框架在解决循环依赖问题时使用的一种机制。2. **二级缓存(earlySingletonObjects)**:存放早期的 Bean 引用,也就是已经实例化但还未进行属性填充和初始化的 Bean。1. **一级缓存(singletonObjects)**:存放已经初始化完成的 Bean,这个缓存中的 Bean 可以直接使用。
2024-08-23 15:38:42
524
1
原创 TACP练习
C、进行分表分库校验时,需要源库(上游)包含主键或者唯一索引,否则无法进行校验(可以进行校验,但是不能修复)B. 恢复数据时,每个TiKV 节点只需要读取自己本节点备份时生成的备份结果即可?A、所有的节点都有日志文件,例如,PD节点,TiKV 节点和 TiDB 节点。C. 备份数据直接由各个 TiKV节点产生,但是备份前需要读取 PD 节点。C.所有节点都有数据文件,例如,PD节点,Tikv 节点和 TiDB节点。B所有的节点都有配置文件,例如,PD节点,TiKv 节点和 TID节点。
2024-08-23 15:35:28
957
原创 Mysql基础架构
当有记录要更新时,先把记录写到redo log里,等系统比较空闲时再写入磁盘。因为没有精确到某一布物理操作,binlog并不能实现crash-safe,但它也有自己的作用:binlog可以使你通过回放让MySQL系統退回之前的状态 ,因为biniog是追加写的,不会費盖以前的日志,所以你可。当执行查询时发现之前有这个查询语句的记录,则直接返回结果,但是,大多数情况下不建议使用缓存,因为即使花大力气存起查询的结果,在更新一个表后,会使得这个表相关的所有缓存失效,导致缓存的命中率并不高,还带来额外的开销。
2024-08-23 15:31:55
789
原创 既然jvm 有频繁的gc来回收内存,为什么程序中还会存在内存溢出的错误
为了解决内存溢出问题,通常需要分析堆栈跟踪(Stack Trace)来确定具体原因,并采取相应的措施,如优化代码、增加内存分配、使用内存分析工具等。随着程序的运行,这些不再使用的对象会占据越来越多的内存,最终导致内存溢出。:如果JVM启动时没有分配足够的内存,应用在运行过程中可能会耗尽所有可用内存,导致内存溢出。:程序可能创建了大量的大对象,这些对象在短时间内消耗了大量内存,而GC又不能及时回收这些对象,从而导致了内存溢出。:有时候,操作系统对JVM进程的内存使用可能有限制,超过这个限制也会导致内存溢出。
2024-06-17 14:31:25
448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人