分布式解决方案

目录

  • [1. 分布式ID](#1. 分布式ID)
    • [1-1. 传统方案](#1-1. 传统方案)
    • [1-2. 分布式ID特点](#1-2. 分布式ID特点)
    • [1-3. 实现方案](#1-3. 实现方案)
    • [1-4. 开源组件](#1-4. 开源组件)
  • [2. 分布式Session](#2. 分布式Session)
    • [2-1. 传统Session](#2-1. 传统Session)
    • [2-2. Spring-Session](#2-2. Spring-Session)
    • [2-3. Token + Redis](#2-3. Token + Redis)
    • [2-4. JWT](#2-4. JWT)
    • [2-5. 拦截器统一处理Token](#2-5. 拦截器统一处理Token)
    • [2-6. Oauth2](#2-6. Oauth2)
  • [3. 分布式锁](#3. 分布式锁)
    • [3-1. redis](#3-1. redis)
    • [3-2. Zookeeper](#3-2. Zookeeper)

1. 分布式ID

1-1. 传统方案

  • 时间戳
  • UUID

1-2. 分布式ID特点

  • 全局唯一
  • 高并发
  • 高可用

1-3. 实现方案

方案总结:

  1. 号段模式
    • 有两台服务器,给第一台服务器分配0-100,第二台服务器分配101-200
    • 优点:性能提高,自增
  2. 雪花算法

1-4. 开源组件

  1. 百度 uid-generator 只支持雪花算法,组件无人维护
  2. 滴滴 Tinyid 只支持数据库号段,支持多db,高可用,提供java-client
  3. 美团 Leaf 支持号段模式、雪花算法。使用zk解决机器码

2. 分布式Session

2-1. 传统Session

Session是由Tomcat管理的


2-2. Spring-Session

使用spring提供的spring-session-data-redis依赖,配置对应的策略,将session存储到redis中。

2-3. Token + Redis

2-4. JWT

2-5. 拦截器统一处理Token

2-6. Oauth2

3. 分布式锁

3-1. redis

使用setnx,原子性操作

直接使用redis客户端,redisson

3-2. Zookeeper

相关推荐
cxr8281 小时前
构建由局部观测、分布式决策与全局奖励协同作用的多智能体强化学习系统
分布式·强化学习·智能体
老马啸西风1 小时前
IM 即时通讯系统-45-merua0oo0 IM 分布式聊天系统
java·分布式·im
老马啸西风2 小时前
IM 即时通讯系统-50-[特殊字符]cim(cross IM) 适用于开发者的分布式即时通讯系统
java·分布式·ui·开源·im
大秦王多鱼12 小时前
Kafka ACL(访问控制列表)介绍
运维·分布式·安全·kafka·apache
40岁的系统架构师14 小时前
17 一个高并发的系统架构如何设计
数据库·分布式·系统架构
一张假钞1 天前
Spark的基本概念
大数据·分布式·spark
一张假钞1 天前
Spark On Yarn External Shuffle Service
大数据·分布式·spark
大秦王多鱼1 天前
Kafka SASL/SCRAM介绍
分布式·安全·kafka·apache
优人ovo1 天前
详解Kafka并行计算架构
分布式·架构·kafka
S-X-S1 天前
RabbitMQ持久化队列配置修改问题
分布式·rabbitmq