短链系统设计性能优化-分片键选型及全局自增 ID 策略

简介: 若一个 long 可对应多个 short使用 cache 缓存所有 long2short在为一个 long url 创建 short url 时,若 cache miss,则创建新 short

4.3.1 分片键选择

若一个 long 可对应多个 short

使用 cache 缓存所有 long2short

在为一个 long url 创建 short url 时,若 cache miss,则创建新 short

若一个 long 只能对应一个 short

若使用随机生成算法

两张表,一张存储 long2short,一张存储short2long

每个映射关系存两份,则能同时支持 long2short short2long 查询

若使用 base62 进制转换法

有个严重问题,多台机器之间如何维护一个全局自增的 id?

一般关系型DB只支持在一台机器上实现这台机器上全局自增的 id

4.4 全局自增 id

4.4.1 专用一台 DB 做自增服务

该 DB不存储真实数据,也不负责其他查询。


为避免单点故障,可能需要多台 DB。


4.4.2 使用 zk

但使用全局自增 id 不是解决 tiny url最佳方案。

Generating a Distributed Sequence Number

目录
相关文章
|
SQL 存储 开发框架
数据定义语言 - DDL
数据定义语言 - DDL
511 0
|
监控 架构师 Java
JVM 11 调优指南:如何进行JVM调优,JVM调优参数
JVM 11的优化指南:如何进行JVM调优,以及JVM调优参数有哪些”这篇文章将包含JVM 11调优的核心概念、重要性、调优参数,并提供12个实用的代码示例,每个示例都会结合JVM调优参数和Java代码
488 2
|
Windows
VM安装出现 EULAS_AGREE = 1 及后续问题的解决办法
VM安装出现 EULAS_AGREE = 1 及后续问题的解决办法 ,我们在安装VM时总会出现各种各样的问题,今天我们要解决关于VM安装过程中出现的问题。
1463 0
|
API
最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
6477 1
最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
|
11月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
1149 22
|
存储 监控 Java
线上OOM排查
本文介绍了JDK工具的使用方法及其应用场景。首先详细说明了`jps`、`jstack`、`jstat`和`jmap`等工具的基本用法及参数含义,帮助开发者实时监控Java进程的状态,诊断线程问题及内存使用情况。接着介绍了`jvisualvm.exe`和`MemoryAnalyzer.exe`两款内存诊断工具,展示了如何通过这些工具进行内存分析。最后,文章提供了在线上OOM故障排查的具体步骤,并给出了解决方案示例,以便开发者更好地理解和解决实际问题。
317 2
线上OOM排查
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
|
存储 Java
软件体系结构 - 垃圾收集器(1)分代ZGC
【4月更文挑战第22天】软件体系结构 - 垃圾收集器(1)分代ZGC
319 2
|
Python
python解包字典到函数参数
【7月更文挑战第5天】
157 2