分布式一致性协议 - EPaxos

总结

epaxos作为paxos族中的一员,并不是单独存在的。所以我在文中开篇给出总结,罗列与basic-paxos、mutli-paxos之间的区别。带着目的学习,可能相对容易理解一些。

阅读全文

一篇小记,关乎生死

教会别人死亡的人,同时也能教会别人生活。
– 《探究哲学既是学习死亡》

二十来岁,是经历生离死别的年纪。死亡,每个人都有这一次,而在我们迎接自己死亡的过程中,如何面对他人死亡,是我最近思考的。

我的家人正经历病痛的折磨,我常常半夜惊醒,醒来哪种无法言语的情感,弥漫了我的整个身体。我们不愿意相信事实,我们舍不得她,却无力改变,面对疾病,我们仿佛回到更古老的时代。

阅读全文

ControllerAdvice拦截Filter抛出的异常

场景还原

@ControllerAdvice在spring中用于全局的异常拦截和处理。Filter则过滤请求,多用于请求鉴权。它们之间的关系如下:
filter,controller关系

阅读全文

分布式一致性协议 - Gossip

前面我们讲过CAP定理、Paxos、Raft,那么试想几个场景:

  • 我们要实现一个完全的AP系统。即集群中只有一个节点存活,也能向外提供服务。在此基础上,我们如何保证数据最终一致性?
  • 在一个庞大的集群中,对某个数据修改后,如何同步到其他节点?
  • 在一个去中心化的集群中,各节点都是对等节点。如何同步数据,使保证各节点数据达到一致?

阅读全文

分布式一致性协议 - CAP、BASE、NWR

这篇文章着重点不在于科普,毕竟关于CAP、BASE的理论的文章,网上很多。所以本文科普篇幅尽量小(只包含概念描述)。主要从几个侧面的问题来描述CAP,进而描述ACID、BASE理念。然后加入一点点调料,如何动态的切换一致性强度。

本文通过以下几个问题,从侧面描述。文中个人观点较多,看官理性对待。

阅读全文

分布式一致性协议 - Raft

学习raft之前,给大家推荐一个网站,这个网站动画描述raft运行过程。在看文章时对照该网站,可以帮助更好的理解raft。
http://thesecretlivesofdata.com/raft/

阅读全文

深入理解jvm03 - 垃圾收集器与内存分配策略

本系列博客为《深入理解Java虚拟机 - JVM高级特性与最佳实践》读书笔记。本书大量干货,适合初学jvm的人员,也适合为应付面试人员,比较推荐的一本书。本系列只为记录书中精髓,方便查阅与记忆。如有错误,欢迎指出 O(∩_∩)O

基于书中第二章总结,程序计数器、java虚拟机栈、本地方法栈随线程的生命周期创建和销毁,自然不用过多的考虑进行垃圾回收。而java堆、方法区则不一样,这一块的分配和回收是动态的,那本章的内容也是基于这两块的内容。

阅读全文

深入理解jvm02 - java内存区域与内存泄露异常

本系列博客为《深入理解Java虚拟机 - JVM高级特性与最佳实践》读书笔记。本书大量干货,适合初学jvm的人员,也适合为应付面试人员,比较推荐的一本书。本系列只为记录书中精髓,方便查阅与记忆。如有错误,欢迎指出 O(∩_∩)O

运行时数据区域

在启动java程序时,我们会给jvm分配指定的内存大小。而jvm则对该部分内存划分为若干区域。其中有的区域以来用户线程的启动和结束而建立和销毁,有的区域随jvm进程的启动而存在。
运行时数据区域

阅读全文

分布式一致性协议 - ZAB

ZAB 背景

学习ZAB,非常有必要聊聊它诞生的背景。因为在paxos的光芒下,还有必要折腾这样类似的算法吗?这个问题是我们初步了解ZAB关键。

阅读全文

分布式一致性协议 - Paxos

paxos 科普

分布式算法,不得不提paxos。它是目前公认的解决分布式共识问题最有效的算法之一,甚至可以说过去几十年里一切分布式一致性算法都来源于它。
那么要学习paxos,我们首先得认识它。一般描述它,都会包含两个词:分布式容错、分布式共识算法。那么它们是指什么呢?paxos又解决了什么样的问题呢?

阅读全文