spring内部有三级缓存: singletonObjects 一级缓存,用于保存实例化、注入、初始化完成的bean实例 earlySingletonObjects 二级缓存,用于保存实例化完成的bean实例 singletonFactories 三级缓存,用于保存bean创建工厂,以便于后面扩展有机会创建代理对象。 Spring 循环依赖 spring
从官方文档中描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程下访问(get/set)时保证各个线程的变量相对独立于其他线程变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程间的上下文。 ThreadLocal浅析 并发
MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。 在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。 这就使得别的事务可以修改这条记录,反正每次修改都会在版本链中记录。SELECT可以去版本链中拿记录,这就实现了读-写,写-读的并发执行,提升了系统的性能。 MYSQL MVCC多版本并发控制底层原理及实现机制 MVCC
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java“锁”事 锁
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。 kafka快速入门 kafka