摘要:
分成4个周期:实例化->属性赋值->初始化->销毁 1. 实例化:通过CreateBean方法创建Bean实例。 2. 属性赋值:通过populateBean()方法给实例对象赋值。 3. 初始化:通过initializeBean初始化Bean 4. Bean销毁:DisposableBean 扩展 阅读全文
摘要:
一、二阶段提交 2PC:又名二阶段提交,将事物提交分成两个阶段来进行处理。它是一种分布式数据一致性的协议。目前绝大多数关系型数据库都使用2PC来完成事物操作,利用该协议能够方便地完成分布式事物协调者和参与者,统一决定事物的提交和回滚,从而保证分布式数据的一致性。 第一阶段是提交事物请求。这个阶段可以 阅读全文
摘要:
索引作用不说了 二叉查找树->平衡二叉树(Balanced Binary Tree, B树) 二叉查找树在极端情况下会变成一条长链表,性能和全表扫描一样,所以在这种情况下优化成平衡二叉树。 平衡二叉树(Balanced Binary Tree, B树)->B+树 虽然平衡二叉树查找效率确实很高,但是 阅读全文
摘要:
一、ZAB 协议 ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议ZooKeeper 实现了一种主备模式的系统架构 阅读全文
摘要:
Nio的好文章:https://zhuanlan.zhihu.com/p/64537916?utm_source=wechat_session&utm_medium=social&utm_oi=660405125986914304 Netty服务端启动过程总结 ServerBootstrap的bin 阅读全文
摘要:
锁升级: 无锁->偏向锁->轻量级锁->重量级锁 sychronized原理: wait/notify 阅读全文
摘要:
ContextLoaderListener是配置在web.xml里的,具体如下: ContextLoaderListener是一个监听器,用来监听容器启动事件,监听到容器启动事件后,会调用其contextInitialized(ServletContextEvent event)方法,该方法负责完成 阅读全文
摘要:
一、原理区别: java动态代理是利用反射机制生成一个实现代理接口的代理类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1、如果目标对象实现了接口,默认情况下会采用JDK的动态 阅读全文
摘要:
可以借鉴:https://blog.csdn.net/junchenbb0430/article/details/77583955 zookeeper的组成部分: 1. Leader:起主导集群的作用,负责事物请求的调度和处理,保证集群中事物处理的顺序性; 2. Follower:处理客户端的非事物 阅读全文
摘要:
对称加密(共享密钥加密) 非对称加密(公开密钥加密):公钥和私钥,公钥可以随意发布,私钥不能让其他任何人知道。CA证书是用CA端的私钥加密服务端的公钥生成的,且CA证书会内置到浏览器的CA根证书中(包含c.pub)。 阅读全文