06 2019 档案
摘要:一、Git概念 1.1、Git定义 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subve
阅读全文
摘要:1、为什么要使用分布式锁? 如下图所示,成员变量A存在JVM1、JVM2、JVM3三个JVM内存中。由于成员变量A同时都会在三个JVM上分配一块内存: + 若三个请求同时对这个变量操作时,显然结果是不对的; + 若三个请求依次分别请求三个不同的JVM内存区域的数据时,由于各JVM之间的
阅读全文
摘要:布式锁实现的三个核心要素:加锁、解锁、锁超时。 一、Redis实现分布式锁基本原理 1.1、Redis具体实现 情景:存在多台JVM需要同时对某一商品(id)进行操作。 + 加锁:使用setnx命令,伪代码:setnx(id,value) 返回1,说明key不存在,线程抢锁成
阅读全文
摘要:1、Observer角色如何配置? Zookeeper集群中的中的Leader和Follower角色是由服务器启动时期的Leader选举产生的,Observer不参与选举,此角色的节点需要在配置文件zoo.cfg中配置。示例如下: 2、Zookeeper集群一定要是奇数台服务器吗? 不一
阅读全文
摘要:一、Znode节点是什么 1.1、概念 Znode节点是Zookeeper中数据模型中最小的数据单元。Zookeeper的数据模型是一颗树,由"/"进行分割路径。每个znode都会保存自己的数据内容,同时还会保存一些属性信息。zookeeper将所有的数据存储在内存中。 1.
阅读全文
摘要:一、Zookeeper角色的分类 1. 领导者(leader) Leader服务器为客户端提供读服务和写服务。 2. 学习者(learner) + 跟随者(follower) Follower服务器为客户端提供读服务,参与Leader选举过程,参与写操作“过半写成功”策略。 + 观察者(observ
阅读全文
摘要:一、前言 在“网络是不可靠的”这一前提下,分布式系统开发需要解决如下四个问题: + 客户端如何访问众多服务? 解决方案:服务聚合,使用API网关 + 服务于服务之间如何通信? 解决方案: 同步通讯:HTTP(Apache http client)、 R
阅读全文
摘要:一、ZAB协议(原子消息广播协议) ZAB(Zookeeper Atomic Broadcast)协议是Zookeeper用来保证其数据一致性的核心算法,是一种支持崩溃恢复的原子广播协议。基于此协议,Zookeeper实现了一种主备模式的系统架构来保持集群中各副本之间数据的一
阅读全文
摘要:一、环境准备 + Linux操作系统 + Java运行环境(1.6或以上) + 服务器列表: 配置主机名映射。 二、zookeeper安装 1、介质准备 分别登录server1、server2、server3执行,操作、配置相同: 2、修改配置文件zoo_sample.cfg 分别登录server1
阅读全文
摘要:一、环境准备 二、SSH配置 分别登录server1、server2、server3执行,操作、配置相同: 1、root用户进入home目录,确实有无隐藏文件夹 .ssh cd ~ ls -lrta 2、有,则跳过本步骤;没有,执行如下命令 ##根据提示输入当前用户密码 ssh localhost
阅读全文
摘要:1、下载JDK安装包: jdk 8u211 linux x64.tar.gz。 2、解压jdk安装包 3、配置环境变量 4、添加bin并验证
阅读全文