BASE 是 Basically Available(基本可用) 、Soft-state(软状态) 和 Eventually Consistent(最终一致性) 三个短语的缩写。
BASE......
Synchronized锁的优化
0 前言
JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重。
随着Javs SE 1.6对synchronized进行的各种优化后,syn......
一致性哈希算法
在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景。
场景描述
假设,我们有三台缓存服务器,用于缓存图片。
我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存......
三把锁:synchronized 、ReentrantLock、ReadWriteLock 概述
synchronized
synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。
Java中每一个对......
一致性算法 Paxos
前言
世界上只有一种一致性算法,出自一位 google 大神之口。
同时,Paxos 也是出名的晦涩难懂,推理过程极其复杂。楼主在尝试理解 Paxos 算法的过程中历经挫折。
今天,楼主不会......
wait和notify
线程状态图
开局先奉上这张线程状态图,个人觉得画的不错
几点结论
使用 wait ,notify 和 notifyAll 时需要先对调用对象加锁。
调用 wait 方法后,线程状态有 R......
一致性协议之 3PC
前言
我们说为了实现 BASE 理论,需要在可用性和一致性之间找到一个合适的一致性理论,于是,我们在上篇文章中了解了 2PC 理论,也就是两阶段提交,二阶段提交原理简单,实现方便,但是缺点则......
一致性协议之 2PC
前言
为了使系统尽量能够达到 CAP,于是有了 BASE 协议,而 BASE 协议是在可用性和一致性之间做的取舍和妥协。
人们往往需要在系统的可用性和数据一致性之间反复的权衡。于是呢,就产生......
Raft 算法
前言
我们之前讲述了 Paxos 一致性算法,虽然楼主尝试用最简单的算法来阐述,但仍然还是有点绕。楼主最初怀疑自己太笨,后来才直到,该算法的晦涩难懂不是只有我一个人这么认为,而是国际公认!
......
JAVA并发编程常识
1 JVM内存模型
堆:
所有对象全部放在共享堆空间中
对象的属性在共享堆空间内
内存单字节对齐,short不变
栈:
每个线程都有独立的线程栈空间
线程栈只存基本类型和对象地址......
一致性协议之 ZAB
前言
在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么呢......
CAP 定理
在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。
根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availabil......
零拷贝
待完成
...