分布式解决方案

目录

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

相关推荐
Elastic 中国社区官方博客2 小时前
使用 Elastic 中的 OpenTelemetry 为 Nginx 实现端到端分布式追踪的实用指南
大数据·运维·分布式·elasticsearch·搜索引擎·信息可视化·全文检索
win x3 小时前
Redis 分布式锁
数据库·redis·分布式
a努力。7 小时前
字节跳动Java面试被问:一致性哈希的虚拟节点和数据迁移
java·开发语言·分布式·算法·缓存·面试·哈希算法
安科瑞小许8 小时前
分布式光伏车棚的智慧化运维:从数据采集到AI赋能
运维·人工智能·分布式·能源·光伏
论迹11 小时前
【RabbitMQ】-- 七种工作模式
分布式·rabbitmq
论迹12 小时前
【RabbitMQ】-- 高级特性
数据库·redis·分布式·消息队列·rabbitmq
萧曵 丶13 小时前
Kafka 全面解析
分布式·kafka
Lansonli13 小时前
大数据Spark(七十六):Action行动算子reduce和take、takeSample使用案例
大数据·分布式·spark
u01040583613 小时前
Java应用的链路追踪:实现分布式跟踪
java·开发语言·分布式
利刃大大13 小时前
【RabbitMQ】消息确认机制 && 持久化 && 发布确认机制
分布式·中间件·消息队列·rabbitmq·mq