Raft算法

在一个由 Raft 协议组织的集群中有三类角色: Leader(领袖) Follower(群众) Candidate(候选人) 就像一个民主社会,领袖由民众投票选出。刚开始没有领袖,所有集群中的参与者都是群众,那么首先开启一轮大选,在大选期间所有群众都能参与竞选,这时所有群众的角色就变成了候选人,民主投票选出领袖后就开始了这届领袖的任期,然后选举结束,所有除领袖的候选人又变回

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

CAP定理 在计算机科学中,CAP定理指出,对于一个分布式系统,不能同时满足一下三点,最多只能同时满足其中两点: 一致性(Consistency):在分布式系统环境下,数据在多台机器上有多个副本。当对数据执行更新操作时,数据更新操作完成后,所有节点在同一时间的数据完全一致,客户端读取的数据永远是更新后的最新数据。 可用性(Availability) : 服务一直可用,

分布式系统中的数据一致性问题

数据一致性 数据库系统中的数据一致性 数据一致性问题最初是存在于数据库系统中的一个概念,数据库系统中一致性问题通常指的是关联数据之间的逻辑是否完整和正确,通常数据库系统会通过使用事务来保证数据的一致性和完整性。事务本质上就是一个操作序列的有限集合,若事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态。 比如当你在淘宝中购买商品进行付款

channel

Go语言提倡使用通信的方法代替共享内存,当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架起了一个管道,并提供了确保同步交换数据的机制。声明通道时,需要指定将要被共享的数据的类型。可以通过通道共享内置类型、命名类型、结构类型和引用类型的值或者指针。 这里通信的方法就是使用通道(channel),如下图所示。 创建通道 通道是引用类型,需要使用 make 进行创建,格式如下: 通道实

go并发编程

并发与并行 并发是指同一个时间段内多个任务同时交叉执行,并且都没有执行结束,而并行是说在单位时间内多个任务同时在执行,并发任务强调在一个时间段内同时执行,而一个时间段有多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。 在单个cpu的时代多个任务同时运行都是并发,这是因为cpu同时只能执行一个任务,单个cpu时代多任务是共享一个cpu的,当

CAP定理的证明

关于CAP这三个特性我们就介绍完了,接下来我们试着证明一下为什么CAP不能同时满足。 为了简化证明的过程,我们假设整个集群里只有两个N1和N2两个节点,如下图: N1和N2当中各自有一个应用程序AB和数据库,当系统满足一致性的时候,我们认为N1和N2数据库中的数据保持一致。在满足可用性的时候,我们认为无论用户访问N1还是N2,都可以获得正确的结果,在满足分区容错

Docker基础概念

b站教程:https://www.bilibili.com/video/BV1og4y1q7M4? 【这个教程非常简洁!且深入!基于企业应用场景!推荐!以下笔记都基于该课程】 【配套笔记:https://gitee.com/nasheishei/docker_learning/blob/master/Docker.md】 什么是docker Docker 使用 Google 公司推出的 Go 语言

Zookeeper入门

我们在虚拟机中安装zookeeper,首先要安装linux虚拟机。 安装linux虚拟机 安装vmvare,地址在这里 下载centos镜像,地址在这里 安装,这里要注意网络配置,Centos网络设置 我这里没有设置固定IP,因为使用的是DHCP动态分配IP,不知道明天起来IP会不会变。 补充:IP变了,于是按照下面的方法固定IP; 关键点,配置网络;vmware虚拟机c

思维题

64匹马,8赛道,找出最快的4匹最少要几次? 64匹马,8赛道,找出最快的4匹最少要几次? 猴子搬香蕉 猴子搬香蕉 140克盐如何3次分成50克、90克 140克盐如何3次分成50克、90克 140克盐分置 你有两个罐子,容量分别是 5 升和 3 升,还有一池塘的水。在没有测量工具的辅助下,问能否准确的取出 4 升水来? 考虑1+3;3升装满后导入5升;再装满3升后导入5升,此时3升剩

Docker容器原理

容器 容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去。 那么,这个边界怎么产生的呢?对于Docker项目来说它最核心的原理实际上就是为待创建的用户进程: 启用 Linux Namespace 配置; 设置指定的 Cgroups 参数; 切换进程的根目录(Change Roo