Kang's Blog

疯狂创作中···

Spring-循环依赖的解决

Spring介绍三

  前面介绍到:Spring实例化一个bean的时候,是分两步进行的,首先实例化目标bean,然后为其注入属性。转载 循环引用实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @Component public class A { private B b; public void setB(B b) { this.b = b; ...

Spring-自身创建与属性实例化

Spring介绍二

  一次完整的实例化动作其实分为三大部分:自身实例化、属性实例化、相关回调 自身实例化   直接看关注的核心代码。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ...

Spring-AOP与IOC总体预览

Spring介绍一

  最终还是觉得应该将AOP和IOC主线简单总结下,不知道为啥,心情有点沉重,太多不懂。 IOC   网上有一句话总结的十分精辟:IoC不是一种技术,只是一种思想。   IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序原本是老大,要获取什么资源都是主动出击自动动手,但是在IoC/DI思想中,应用程序就变成被动接受的(只管享受)了,被动的等待IoC容...

数据库-树、索引

树与索引简单总结

强烈推荐阅读-MySQL-INNODB形成原理 推荐阅读-浅谈AVL树,红黑树,B树,B+树原理及应用 推荐阅读-MySQL索引背后的数据结构及算法原理 使用场景概要   红黑树:是有序的数据结构,可用作数据容器。红黑树多用在内部排序,即全放在内存中的。   B树:多用在内存里放不下,大部分数据存储在外存上时,子节点上都携带有指向实际数据的指针。   B+树:同B树,多用在内存里放不...

分布式-分布式锁

分布式锁简单总结

按锁的用途特点分类 允许多个客户端操作共享资源   这种情况下,(相同业务操作)对共享资源的操作一定是幂等性操作,无论你操作多少次都不会出现不同结果。在这里使用锁,只是为了最大程度上避免对共享资源的重复性操作,但其允许出现重复操作。 只允许一个客户端操作共享资源   这种情况下,(互斥业务操作)对共享资源的操作一般是非幂等性操作。在这种情况下,如果出现多个客户端操作共享资源...

分布式-消息与事务

消息与事务处理

  既然使用了消息,那么其实对整体的一致性要求不是很高,在业务上只要保证最终一致性即可。 消息发送方式分类 非持久化消息:以异步的方式发送到消息中心; 持久化事务型消息:以异步的方式发送到消息中心; 持久化非事务型消息:以同步的方式发送到消息中心; 在使用消息中间件时,一般要允许消息积压量处理,以防止生产者产生速率远远大于消费者将broker冲垮。 调优点 多久/...

分布式-一致性算法简单整理

一致性paxos、raft算法简单整理

推荐参阅列表 推荐阅读-paxos生活化案例讲解 推荐阅读-架构师需要了解的Paxos原理、历程及实战 推荐阅读-图解分布式一致性协议Paxos 推荐阅读-Paxos协议超级详细解释+简单实例 解决了什么   解决分布式环境下数据一致性的问题。分布式环境下不同数据副本节点之间可能数据不一致,paxos和raft算法提供了一种可靠的解决方案。 ...

分布式-2pc、3pc、TCC

2pc、3pc、TCC理论简介

分布式事务也要让分布式系统下操作满足基本特性:ACID(原子性,一致性,隔离性,持久性)。 理解前提:分布式事务不可能100%解决分布式业务不一致性,只能尽可能提高作为原子执行的功率。 2PC 2pc&3PC: 依赖于数据库层面做回滚等操作,需要控制数据库资源,不和具体业务逻辑挂钩,不太适用于微服务,之前常用于单系统跨库的应用。 准备阶段   询问每个事务参与者是否可以提交事务,...

分布式-CAP与BASE理论

CAP与BASE理论简介

CAP理论   一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)   讨论前提:分布式,多区域节点服务 一致性   一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。所以,一致性,说的就是数据一...

其他-防采坑&采坑记

可能踩的坑与踩过的坑

1. 事务   在做事务时,需要考虑尽量控制一个事务的大小,特别是对外部系统的操作,除非接口或者本身也是事务操作,否则将该操作放在事务外面。这样可以避免在高并发下外部调用时间过长本地事务一直不释放而导致连接池资源耗尽问题。 2.异常的捕获   对于涉及到底层物理盘的写操作(如写文件),目前碰见过两次底层异常但是业务方感知不到直接返回成功的情况,所以对于最底层的操作,推荐catch捕获Thr...