分布式解决方案
目录
- 1. 分布式ID
- 1-1. 传统方案
- 1-2. 分布式ID特点
- 1-3. 实现方案
- 1-4. 开源组件
- 2. 分布式Session
- 2-1. 传统Session
- 2-2. Spring-Session
- 2-3. Token + Redis
- 2-4. JWT
- 2-5. 拦截器统一处理Token
- 2-6. Oauth2
- 3. 分布式锁
- 3-1. redis
- 3-2. Zookeeper
1. 分布式ID
1-1. 传统方案
- 时间戳
- UUID
1-2. 分布式ID特点
- 全局唯一
- 高并发
- 高可用
1-3. 实现方案

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

1-4. 开源组件
- 百度 uid-generator 只支持雪花算法,组件无人维护
- 滴滴 Tinyid 只支持数据库号段,支持多db,高可用,提供java-client
- 美团 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. 分布式ID1-1. 传统方案1-2. 分布式ID特点1-3. 实现方案1-4. 开源组件 2. 分布式Session2-1. 传统Session2-2. Spring-Session2-3. Token Redis2-4. JWT2-5. 拦截器统一处理Token2-6. Oauth2 3. 分布式锁3-1. redis3-2. Zookeeper 1. 分布式ID 1-1. 传统方案 时间戳U…...
力扣刷题日记——L724. 寻找数组的中心下标
1. 前言 今天是力扣刷题日记的第二天,今天依旧是一道简单题啊,慢慢来,先看看题目是什么吧。 2. 题目描述 给你一个整数数组 nums ,请计算数组的 中心下标。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和…...
【Kotlin】类和对象
1 前言 Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。 Java 有静态(static)代码块,Kotlin 没有࿱…...
Docker完整版(一)
Docker完整版(一) 一、Docker概述1.1、Docker简介1.2、Docker的用途1.3、容器与虚拟机的区别1.4、Docker系统架构1.5、Docker仓库 二、Docker引擎2.1、Docker引擎架构2.2、Docker引擎分类2.3、Docker引擎的安装2.4、Docker镜像加速器 三、Docker镜像3.1、…...
AIOPS:Zabbix结合讯飞星火做自动化告警+邮件通知并基于人工智能提供解决方案
目前Zabbix官方已经提供Zabbix+ChatGPT的解决方案 ChatGPT一周年,你充分利用了吗?Zabbix+ChatGPT,轻松化解告警! 但是由于需要魔法等其他因素,比较不稳定,遂决定使用国内模型,这里我挑选的是讯飞星火,基于我之前的文档,在此基础上通过Zabbix的告警脚本实现调用AI模型…...
AHU 汇编 实验六
一、实验名称:实验6 输入一个16进制数,把它转换为10进制数输出 实验目的: 培养汇编中设计子程序的能力 实验过程: 源代码: data segmentbuff1 db Please input a number(H):$buff2 db 30,?,30 dup(?),13,10buff3 …...
Linux的输出、输入重定向和管道
目录 输出重定向 输入重定向 < << 管道操作 输出重定向 当我输⼊⼀个命令之后,回⻋,命令产⽣了结果,结果默认是输出到屏幕上的。 默认情况,⽆论⼀个命令执⾏正确与否,结果都会默认输出到屏幕上。 在有…...
java-新手笔记(枚举)
枚举(Enumeration)是一种特殊的类,用于表示固定数量的常量值。 枚举类型使得代码更加清晰,易于维护,同时也增加了类型安全。 这边使用一个枚举封装重要数据 enum Day {SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FR…...
Centos7 安装postgresql14后无法连接数据库
1、数据库服务器允许外部访问5432端口。 2、postgresql.conf 3、pg_hba.conf a、制定某个IP(192.168.0.107)访问 b、指定ip段访问 允许10.1.1.0~10.1.1.255网段登录数据库 host all all 10.1.1.0/24 trust c、指定全网访问 host a…...
GaussDB(DWS)运维利刃:TopSQL工具解析
在生产环境中,难免会面临查询语句出现异常中断、阻塞时间长等突发问题,如果没能及时记录信息,事后就需要投入更多的人力及时间成本进行问题的定位和解决,有时还无法定位到错误出现的地方。在本期《GaussDB(DWS)运维利刃࿱…...
信息安全、网络安全以及数据安全三者之间的区别
随着信息技术的飞速发展,网络安全、信息安全、数据安全等词汇在平时出现的频率越来越高,尤其是数据安全,是大家都关心的一个重要话题。事实上,有很多人对网络安全、信息安全、数据安全的概念是区分不清的,下面由我帮大…...
初阶数据结构之---堆的应用(堆排序和topk问题)
引言 上篇博客讲到了堆是什么,以及堆的基本创建和实现,这次我们再来对堆这个数据结构更进一步的深入,将讲到的内容包括:向下调整建堆,建堆的复杂度计算,堆排序和topk问题。话不多说,开启我们今…...
架构师面试100问?
面试架构师时,需要考察广泛的知识领域,包括技术、架构设计、团队管理、沟通能力等方面。以下是一些可能的面试问题,涵盖了多个方面问题: 介绍一下你的技术背景和经验。你在之前的项目中扮演过哪些角色?你对微服务架构…...
visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题
3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP,前者使用方法需要指明线的两个端点,后者自动连接相邻两个点。 姿态问题 网上看了一些,没有涉及到朝向设置,Pose.orientation默认构造为4个0 至…...
c语言:输入定制
输入定制 任务描述 输入数据是一大串数字,要求读取五个数,但要求你只处理其中的第1、3、5个数,输出这三个数的和。第一个数只读1位数,第二个数只读2位数,第三个数只读3位数,第四个数只读4位数,…...
Python批量提取Word文档表格数据
在大数据处理与信息抽取领域中,Word文档是各类机构和个人普遍采用的一种信息存储格式,其中包含了大量的结构化和半结构化数据,如各类报告、调查问卷结果、项目计划等。这些文档中的表格往往承载了关键的数据信息,如统计数据、项目…...
【Qt】四种绘图设备详细使用
绘图设备有4个: 绘图设备是指继承QPainterDevice的子类—QPixmap QImage QPicture QBitmap(黑白图片) QBitmap——父类QPixmapQPixmap图片类,主要用来显示,它针对于显示器显示做了特殊优化,依赖于平台的,只能在主线程中使用(UI线…...
区块链web3智能合约Solidity学习资源整理
简单说明: Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity中文官方文档: ht…...
python学习、开发实用文档分享
今天给大家分享两个好用的关于python django框架使用的在线文档 Django中文在线文档: Django 文档 | Django 文档 | Django django rest framework 文档 1 - Serialization - Django REST framework中文站点 有开发和学习中遇到不会的, 或者需要学习的技能点直接去上面两个…...
Docker compose部署redis哨兵集群
Docker compose部署redis哨兵集群 安装Docker和docker-compose准备docker-compose文件redis exporter本地部署准备Redis配置文件ACL用户权限配置Linux内核参数优化启停Redis实例主从复制配置 环境准备: IP版本角色172.x.x.11RHEL 7.9master172.x.x.12RHEL 7.9repli…...
Python AI服务上线倒计时:Cuvil预编译缓存机制如何帮你抢在竞品前24小时完成vLLM兼容升级?
第一章:Cuvil编译器在Python AI推理中的定位与价值Cuvil编译器是一个面向AI推理场景的轻量级、Python原生友好的编译框架,专为优化动态图模型(如PyTorch TorchScript子集、ONNX子图及自定义算子图)在CPU/GPU边缘设备上的执行效率而…...
Kylin 麒麟系统软件源配置与版本适配指南
1. 麒麟系统软件源基础认知 第一次接触麒麟系统的用户可能会疑惑:为什么安装完系统后无法直接更新软件?这其实是因为系统默认没有配置软件源。软件源就像是一个"应用商店仓库",里面存放着系统需要的所有软件包和更新。麒麟系统作为…...
别再手动P图了!用Python+Flask 5分钟搭建一个车牌图片生成API(支持蓝黄绿白黑牌)
5分钟构建车牌生成API:用PythonFlask打造高定制化图像服务 在自动化测试和图像处理领域,生成逼真的车牌图像是一个常见但容易被低估的需求。无论是用于车牌识别算法的训练数据增强,还是作为开发测试的模拟数据源,一个灵活的车牌生…...
为什么你的FastAPI AI接口无法流式输出?揭秘EventSource兼容性断层、中间件拦截陷阱与response_model边界漏洞
第一章:FastAPI 2.0 异步 AI 流式响应 配置步骤详解FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,特别适用于大语言模型(LLM)推理场景中逐 token 返回生成结果的需求。配置关键在于正确…...
RAG效果调优清单(命中率提升3倍)
文章目录 🚀 RAG效果调优清单(命中率提升3倍) 🧠 一、核心结论(先记住) 🔥 二、一级优化(必须做,提升最大) 1️⃣ Chunk策略(最重要❗) ❌ 常见错误 ✅ 最优参数 🧠 进阶技巧(关键!) 2️⃣ Embedding模型选择(决定下限) ❌ 错误 ✅ 推荐(中文) 3️⃣ T…...
别再手动配环境了!用vcpkg在Windows上无痛安装osgEarth 3.7(附VS2019+避坑指南)
现代C开发者的效率革命:vcpkg一键部署osgEarth全攻略 在三维地理信息系统(GIS)和可视化领域,osgEarth作为开源地理空间工具包一直备受开发者青睐。然而,其复杂的依赖链和繁琐的编译过程常常让开发者望而却步——从OpenSceneGraph(OSG)基础库到…...
GESP2024年9月认证C++三级( 第一部分选择题(1-8))
🌟第1题:浮点数的陷阱1、🎯故事小魔法师写了一个咒语:double a 0.9; double b 1.0; if ((b - a) 0.1)他以为:👉 1.0 - 0.9 0.1 ✅但结果却是:👉 ❌ 输出:Not equal2、…...
Python AOT编译正式落地2026:3步完成插件下载、5分钟完成生产级安装(附官方校验码)
第一章:Python AOT编译正式落地2026:里程碑意义与核心价值2026年3月,CPython官方宣布Python 3.14版本原生支持AOT(Ahead-of-Time)编译模式,标志着Python首次在标准发行版中实现无需第三方运行时干预的静态可…...
光度立体三维重建中的光源标定:从理论到Matlab实践
1. 光度立体三维重建与光源标定的基础概念 想象一下你正在用手电筒照射一个苹果,随着手电筒角度的变化,苹果表面的明暗也会跟着改变。光度立体三维重建就是利用这个原理,通过分析物体在不同光照条件下的明暗变化,来还原物体的三维…...
ABB机器人编程避坑指南:从数据类型到运动指令的7个易错点
ABB机器人编程避坑指南:从数据类型到运动指令的7个易错点 第一次在RobotStudio里看到机器人因为数据类型错误突然停止时,我盯着报错信息足足愣了五分钟。这种经历在ABB机器人编程中并不罕见——从数据类型选择到运动指令参数设置,每个环节都可…...
