摘要:1.a:表示原子性,事务中如果有多个修改操作,会把这些操作记录日志,如果失败则根据日志回滚; 2.c:一致性,表示数据要正确,例如A往B转了一百块,A账户要少一百块,B账户要多一百块;例如扣完了库存,要新增一个流水和库存剩余要更改; 也就是数据要始终保证是正确的。而CAP里面的C,也是一致性,从表面
阅读全文
摘要:volatile实现原理: 1.如果变量加了volatile修饰,在写的时候,jvm会向cpu发送一个lock指令,表示需要将缓存数据写会到主存,同时lock指令会锁住这一块缓存,用缓存一致性来保证写回的原子操作。 2.如果变量加了volatile修饰,在读的时候,缓存回写到主存会导致其他处理器的缓
阅读全文
摘要:切面:要织入目标对象的抽象切入点: 对连接点的定义(在切面里面的)连接点: 要拦截方法 @Aspectclass interceptorHandler{ //拦截器处理类 @pointcut("execution(* add*(..))") //目标类中的方法称为连接点 private void a
阅读全文
摘要:一 类加载过程 1. 加载 ,加载字节码文件到内存 2. 验证,验证字节码文件是否符合jvm规范 2.1 准备,类变量分配空间 3. 解析,将常量池里面符号引用替换为直接引用 4.初始化,初始化类变量 二 双亲委派模型 1. 启动 类加载器 (bootstrap) 2. 扩展 类加载器 (exten
阅读全文
摘要:在redis实例增减中为了保证key和redis实例之间稳定的配对关系,引入了一致性hash算法,这个算法可以简单地描述为: key会映射到一个hash空间, 桶也会映射到hash空间, 然后key会在hash空间(环)上找桶 参考文章: https://my.oschina.net/zhengli
阅读全文
摘要:RPC调用的三个主题, 1. 数据协议,好的数据协议编码后的码流小,利于网络传输,在编解码的过程中占用CPU少,并且跨平台的。例如java自带的序列化反序列化就是不跨平台。 2.IO模型, bio、nio、aio,JDK1.5之后nio采用了epoll模式,netty就是基于这个NIO做的,比较出名
阅读全文