分布式解决方案

目录

  • [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

相关推荐
千层冷面21 分钟前
RabbitMQ 全面详解(附面试重点)
分布式·面试·rabbitmq
Pandaconda34 分钟前
【后端开发面试题】每日 3 题(十三)
redis·分布式·后端·面试·kafka·后端开发·缓存消息队列
别说我什么都不会14 小时前
OpenHarmony源码分析之分布式软总线:trans_service模块(2)/会话管理之新会话
分布式·嵌入式·harmonyos
庭前云落15 小时前
从零开始的 Kafka 学习(三)| 创建主题
分布式·学习·kafka
添砖Java中15 小时前
零基础掌握分布式ID生成:从理论到实战的完整指南 [特殊字符]
java·分布式·分布式id
别说我什么都不会18 小时前
OpenHarmony源码分析之分布式软总线:trans_service模块(1)/认证通道管理
分布式·嵌入式·harmonyos
Pitayafruit19 小时前
【📕分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取
redis·分布式·后端
一只淡水鱼6621 小时前
【RabbitMQ】事务机制、限流、负载均衡
分布式·rabbitmq·负载均衡·限流
Cloud_.1 天前
RabbitMQ 基本原理详解
spring boot·分布式·后端·rabbitmq
百锦再1 天前
在 CentOS 上安装 Oracle 数据库
数据库·分布式·安全·oracle·centos·关系型