分布式解决方案

目录

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

相关推荐
勤奋的知更鸟1 小时前
Kettle + 大数据实战:从数据采集到分布式处理的完整流程指南
大数据·分布式
Kookoos1 小时前
ABP VNext + Cosmos DB Change Feed:搭建实时数据变更流服务
数据库·分布式·后端·abp vnext·azure cosmos
掘金-我是哪吒14 小时前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
亲爱的非洲野猪15 小时前
Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
java·分布式·中间件·kafka
活跃家族15 小时前
分布式压测
分布式
前端世界16 小时前
HarmonyOS开发实战:鸿蒙分布式生态构建与多设备协同发布全流程详解
分布式·华为·harmonyos
DavidSoCool17 小时前
RabbitMQ使用topic Exchange实现微服务分组订阅
分布式·微服务·rabbitmq
掘金-我是哪吒18 小时前
分布式微服务系统架构第158集:JavaPlus技术文档平台日更-JVM基础知识
jvm·分布式·微服务·架构·系统架构
东窗西篱梦19 小时前
Redis集群部署指南:高可用与分布式实践
数据库·redis·分布式
Acrel_Fanny19 小时前
Acrel-1000系列分布式光伏监控系统在湖北荆门一马光彩大市场屋顶光伏发电项目中应用
分布式