logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

kafka延迟队列是怎么实现的

Kafka 本身(标签系统首选)、,均需解决「延迟触发 + 消息不丢失 + 精准性」问题。

#kafka#linq#数据库
Java synchronized原理总结

保证内存可见性、操作原子性。

#jvm#java
mysql的change buffer

change buffer 的作用当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InooDB 会将这些更新操作缓存在 change buffer 中,这样就不需要从磁盘中读入这个数据页了。在下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行 change buffer 中与这个页有关的操作。通过这种方式就能保证这个数

#mysql#数据库#java
为什么spring解决bean初始化时候循环依赖问题是用的三级缓存而不是二级缓存?

二级缓存的局限:只能存储 “静态对象”(原始 Bean 或提前生成的代理 Bean),无法应对 “代理对象需要延迟生成” 的场景,会导致依赖注入的对象与最终成品不一致。三级缓存的价值:通过 “工厂逻辑” 实现了代理对象的 “按需生成”,在循环依赖的节点上动态判断是否需要代理、生成代理,确保所有依赖方注入的都是最终的代理对象(若需要代理),同时避免了不必要的代理对象生成(非循环依赖场景下,代理可在

#spring#java#后端
mysql的change buffer

change buffer 的作用当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InooDB 会将这些更新操作缓存在 change buffer 中,这样就不需要从磁盘中读入这个数据页了。在下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行 change buffer 中与这个页有关的操作。通过这种方式就能保证这个数

#mysql#数据库#java
ElasticSearch架构和写入、更新、删除、查询的底层逻辑

简单说,ES 架构基于实现高可用与横向扩展,而读写删查的底层逻辑则围绕展开,确保性能与数据一致性。一、Elasticsearch 核心架构。

#elasticsearch#架构#大数据 +1
如何保证缓存与数据库更新时候的一致性

业务场景推荐方案核心原因普通业务(商品详情、用户信息)实现简单,平衡一致性与性能强实时业务(金融余额、库存)Write-Through + 锁确保缓存与数据库实时一致,避免资金风险优先保证写吞吐量,接受短暂延迟高并发读写同一数据Cache-Aside + 分布式锁解决并发冲突,避免脏数据。

#缓存#数据库#java
Java中wait和await的区别

对比维度wait()await()所属类Object 类Condition 接口依赖锁synchronized 锁(隐式锁)Lock 锁(显式锁,如 ReentrantLock)调用前提必须在 synchronized 块 / 方法内必须在 lock () 后、unlock () 前唤醒方法对应对象的 notify ()/notifyAll ()对应 Condition 的 signal ()/s

#java#python#开发语言
jvm五大区及作用学习总结

程序计数器程序计数器(Program Counter Register)是JVM中一块较小的内存区域,保存着当前线程执行的虚拟机字节码指令的内存地址。Java多线程的实现,其实是通过线程间的轮流切换并分配处理器执行时间的方式来实现的,在任何时刻,处理器都只会执行一个线程中的指令。在多线程场景下,为了保证线程切换回来后,还能恢复到原先状态,找到原先执行的指令,所以每个线程都会设立一个程序计数器,

到底了