分布式学习笔记


分布式学习笔记

  • 分布式基础理论
    • 双活数据中心
    • 重要指标
      • QPS
      • TPS
      • 参考文档
    • 一致性算法Raft
    • CAP 理论
  • 分布式ID生成器
  • 分布式锁
    • 分布式锁的出现背景
    • 单机锁的实现方案
      • 进程内加锁
      • tryLock
    • 分布式锁的实现方案
      • 基于Redis的setnx
      • 基于etcd
      • 基于ZooKeeper
    • 参考文档
  • 分布式框架
    • Zookeeper学习笔记
    • etcd学习笔记
      • etcd 的基本概念
      • etcd 的安装及常用命令
      • etcd 的使用场景
        • 场景一:服务发现(Service Discovery)
        • 场景二:消息发布与订阅
        • 场景三:负载均衡
        • 场景四:分布式通知与协调
        • 场景五:分布式锁
        • 场景六:分布式队列
        • 场景七:集群监控与Leader竞选
        • 场景八:为什么用etcd而不用ZooKeeper?
        • 参考文档

分布式基础理论 双活数据中心 重要指标 QPS
QPS: queries per second,每秒请求处理数
QPS = req/sec = 请求数/秒
TPS
TPS: TransactionPerSecond,每秒事务处理量
参考文档
tps (每秒事务处理量(TransactionPerSecond))
PV、TPS、QPS是怎么计算出来的?
一致性算法Raft Raft一致性算法笔记
Raft 为什么是更易理解的分布式一致性算法
从分布式一致性到共识机制(二)Raft算法
Raft一致性算法
理解分布式一致性与Raft算法
一致性算法 - Raft
CAP 理论 分布式数据系统中的CAP定理
分布式ID生成器 Twitter的分布式自增ID算法snowflake (Java版)
SnowFlake之JAVA实现
雪花算法(SnowFlake)Java实现
全局唯一ID生成器(SnowFlakeId算法JAVA实现)
分布式锁 分布式锁的出现背景 在程序中并发或并行修改全局变量时,需要对全局变量加锁;如果不加锁,会发生数据的并发修改情况,最终影响运行结果。
例如如下需求: 启动1000个协程同时对全局变量(未加锁)进行修改,预期其运行结果为1000,但程序实际运行结果不是等于1000的。
unlock_test.go
单机锁的实现方案 进程内加锁
1000个协程并发修改全局变量,在程序中每个协程对全局变量进行修改时,都对全局变量进行加锁,修改完毕后释放锁。始终保持只有一个协程在对全局变量进行修改,最终可得到正确的结果。
wg_lock_test.go
tryLock
trylock顾名思义, 尝试加锁, 加锁成功执?后续流程, 如果加锁失败的话也不会阻塞, ?会直接返回
加锁的结果。 在Go语?中我们可以???为1的Channel来模拟trylock:
trylock_test.go
分布式锁的实现方案 基于Redis的setnx
setnx: 设置缓存;在键不存在的情况下,缓存会设置成功;在键存在的情况下,缓存会设置失败。
使用Redis的setnx指令,配置缓存过期时间,可以保证一定时间内只有一个线程获得锁;
redis_lock_test.go
基于etcd
etcd_lock_test.go
基于ZooKeeper
zookeeper_lock_test.go
参考文档 基于数据库实现的分布式锁
大家所推崇的Redis分布式锁真的就万无一失吗?
分布式框架 Zookeeper学习笔记 ubuntu下的linux系统zookeeper部署
ubuntu 安装 zookeeper
Ubuntu 18 下安装zookeeper
etcd学习笔记 etcd 的基本概念
官网
etcd——基于Golang实现的一个高可用的分布式键值(key-value)数据库,主要用于配置信息管理和服务发现
etcd 可启动多个实例
etcd 的安装及常用命令
etcd 的使用场景
场景一:服务发现(Service Discovery) 场景二:消息发布与订阅 场景三:负载均衡 场景四:分布式通知与协调 场景五:分布式锁 场景六:分布式队列 场景七:集群监控与Leader竞选 场景八:为什么用etcd而不用ZooKeeper? 参考文档 【分布式学习笔记】ETCD 简介 + 使用
ETCD 与 服务发现
Etcd项目介绍
Etcd - 分布式配置中心
ETCD简介与使用
ETCD应用

    推荐阅读