聊聊分布式存储——图解Paxos

一.简要介绍 在《聊聊分布式存储——问题与矛盾》中已经提到,在对一个分布式系统进行架构设计时,往往会在可用性和一致性之间反复权衡。为了解决分布式一致性问题,产生了一系列一致性协议和算法。其中比较著名的有:二阶段提交协议(2PC)、三阶段提交协议(3PC)、Paxos 算法、Raft 算法等。 本文主要介绍 P

拜占庭将军问题

原文链接:拜占庭将军问题深入探讨 了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题。但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见。本文是一篇技术科普,将重点提供了拜占庭将军问题本身对本质及经典算法的解析,并探讨与之相关的一些问题。笔

聊聊分布式存储——问题与矛盾

本文将介绍分布式存储相关内容。关于分布式存储的内容将从不同的角度和主题分为多篇文章完成,这是第一篇并没有复杂的技术和概念,算是前言或当成一篇了解分布式存储的科普文也是不错的。 网上关于分布式存储的文章有很多,但大部分都是罗列概念或者知识点过于分散,看了很多却“只见树木,不见森林”,学了很多往往只能“知其然,却不能知其所

一个故事看懂“区块链”——关于比特币最通俗易懂的解释

区块链是比特币的底层技术和基础架构,本质上是一个去中心化的数据库。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)并生成下一个区块。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以密码学方式保证的不

TailLog 实时日志管理工具

TailLog是一实时日志管理工具。用于便捷高效的查看和监控日志信息。类似执行”tail”命令,在本地展示并跟踪日志信息。 通过过滤器,搜索,高亮等辅助等功能,快定位异常,让你更专注于程序开发与运行。 开发工作总是需要和日志打交道。而在开发,调试,监控时最常使用的命令是“tail -f xxx.

案例学习 Java8 Lambda函数式编程

本文通过案例,快速展示如何从传统编程方式演化为函数式编程。 本文虽然不能完全掌握整个函数式编程的技术与方法,但重点在于了解一种解编程思维方式的转变。其中涉及的概念和思路也将成为学习入门的引子。 文中案例和思路源于《Java 8实战》并进行适当改编。希望全面了解掌握Java8和函数式编程技术的童鞋,强烈建议阅读此书。 需

修改intellij(idea)中mybatis对应的xml背景颜色

Intelij(idea) 在使用mybatis的时,对应的xml文件中sql语句背景色总是有黄色或绿色的背景色,看起来很繁杂。类似如下: 去掉该背景色的方法如下: 一般涉及三个地方的修改,但不一定需要全部设置。 (1)配置数据源,这点很多方案没有提到。 (2)修改sql语法检查,这个可以不去掉 (3)去除背景色。

Java常见异常及解释(转)

java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试。 ArrayIndexOutOfBoundsException 请查看 IndexOutOfBoundsException。不同之处在于这个异常越界的元素不止一个。 Arra