分布式解决方案

目录

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

相关推荐
在未来等你32 分钟前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
大数据CLUB4 小时前
基于spark的澳洲光伏发电站选址预测
大数据·hadoop·分布式·数据分析·spark·数据开发
ajax_beijing6 小时前
zookeeper是啥
分布式·zookeeper·云原生
虫小宝12 小时前
返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
分布式·架构·rabbitmq
We....12 小时前
Java分布式编程:RMI机制
java·开发语言·分布式
在未来等你13 小时前
Elasticsearch面试精讲 Day 18:内存管理与JVM调优
大数据·分布式·elasticsearch·搜索引擎·面试
We....13 小时前
Java 分布式缓存实现:结合 RMI 与本地文件缓存
java·分布式·缓存
Chasing__Dreams13 小时前
kafka--基础知识点--5.3--producer事务
分布式·kafka
小枫编程13 小时前
Spring Boot 调度任务在分布式环境下的坑:任务重复执行与一致性保证
spring boot·分布式·后端
Hello.Reader15 小时前
Kafka 实现从网络层到日志与位点的“全景拆解”
分布式·kafka