一致性协议 - paxos

在分布式系统中,如果需要确保数据一致性,需要构建一些算法模型,称为一致性协议,而 zookeeper 作为一个保证 CP 的分布式系统,同样使用了一致性协议 —— zab 协议,而在此之前需要先了解 paxos 算法 。Paxos 算法Paxos 算法是 Lamport 宗师提出的一种基于消息传递的
算法 云原生 2021年08月30日 92次浏览

分布式系统 & CAP 定理 & BASE 理论

分布式系统分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。 其目的是 利用更多的机器,处理更多的数据 。个人理解,很多主机组成一个分布式系统,统一完成某种任务或对外提供某种服务。
分布式 云原生 2021年08月29日 96次浏览

Golang 的包管理 —— go module

在编程时,我们经常会使用一些第三方依赖库。随着使用的依赖库越来越多,会出现一些问题,比如代码迁移困难,依赖库升级困难等问题,因此就出现了一系列包管理工具。比如 java 中经常使用的 Maven 和 Gradle 。而 Go 语言也有自己的包管理机制。总的来说,Go 语言包管理机制经过了以下三个时期
Go 包管理 2021年08月23日 59次浏览

Spring bean 加载过程简要分析与循环依赖解决

SpringContextSpring 上下文是一系列组件的集合,包括了一个 Spring 应用运行期间和 Spring 所有有关的东西,包括 bean 工厂,原料扫描器,原料加载器等组件:其中 BeanFactory 负责根据原料创建管理 Bean 。而其他组件负责提供原料,后置处理等操作 。包括
Java Spring 循环依赖 2021年08月18日 152次浏览

螺旋矩阵问题模板

螺旋矩阵代码模板。这种问题没有什么算法,但是很考验功力。转自 代码随想录 (programmercarl.com)螺旋矩阵例题:Loading Question... - 力扣(LeetCode) (leetcode-cn.com)给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按
算法 螺旋矩阵 2021年08月18日 111次浏览

Picasso 源码分析

Picasso 源码分析这是一个新的系列,我们一起来阅读一下一些优秀开源库的源码。先从简单到复杂,首先先来看看 Picasso 的源码。官网:https://square.github.io/picasso/Github 网址:https://github.com/square/picasso/Pi
Android Java 2021年08月11日 72次浏览

LiveData 源码分析

LiveData 是 jetpack 包里的一个组件,这个组件主要的作用是作为一个可观察数据的持有者,它维护一个变量,可以注册监听者,然后再变量修改的时候通知监听者。LiveData 只是一个很小的工具,在 MVVM 架构中,我们一般将 LiveData 对象放到 ViewModel 里,之后有时间
Android Kotlin jetpack mvvm 2021年08月11日 98次浏览

NIO 使用

前面学习了 I/O 流,是 java.io 里的包,了解到 java 在 14 版本后新加入了一套 I/O 流 ,在 java.nio 包中,与传统 I/O 流相比,我认为最主要区别有两个:抽象出几个对象,分别是 Channel 、Buffer 和 Selector,他们分别的作用接下来会讲到。针对
Java IO流 2021年08月11日 92次浏览

PipedOutputStream 和 PipedInputStream 源码分析

之前简单介绍了一下 Java 中的 IO 流 机制,和几种 IO 流 的特性和使用场景,在分析的时候看到一些 IO 流 的代码写的挺不错的,来简单分析几个的源码把,今天先看看 PipedOutputStream 和 PipedInputStream。引子这两个 IO 流,的主要特点是支持相互连接,其
Java IO流 2021年08月11日 71次浏览

OIO (BIO) 简单分析

因为工作室给新人培训要将到网络编程,想着布置一道 Socket 实现聊天平台的作业,想自己先写写。过程中遇到了 io 流 选择的问题,觉得这个应该挺重要的,花点时间研究了一下各种 IO 流 的源码,来记录一下,以后可以用到。IO 流流是一种抽象概念,可以看成一个水流,而 Java 的 IO 流工具分
Java IO流 2021年08月11日 72次浏览