短链系统设计性能优化-缓存提速及CDN
4 Scale
如何提高响应速度,和直接打开原链接一样的效率。
明确,这是个读多写少业务。
4.1 缓存提速(Cache Aside)
缓存需存储两类数据:
- long2short(生成新 short url 需要)
- short2long(查询 short url 时需要)
4.2 CDN
利用地理位置信息提速。
优化服务器访问速度:
- 不同地区,使用通不同 web 服务器
- 通过 dns 解析不同地区用户到不同服务器
优化数据访问速度
- 使用中心化的 MySQL+分布式的 Redis
- 一个 MySQL 配多个 Redis,Redis 跨地区分布
4.3 何时需要多台 DB 服务器
cache 资源不够或命中率低
写操作过多
越来越多请求无法通过 cache 满足
多台DB服务器可以优化什么?
- 解决存不下:存储
- 解决忙不过:qps
那么 tiny url 的主要问题是啥?存储是没问题的,重点是 qps。那么,如何 sharding 呢?
垂直拆分:将多张表分别分配给多台机器。对此不适用,只有两列,无法再拆分。
横向拆分:
若id、shortURL 做分片键:
- long2short 查询时,只能广播给 N 台 db 都去查询
- 为何要查 long2short?避免重复创建呀
- 若不需要避免重复创建,则这样可行
用 long url 做分片键:
short2long 查询时,只能广播给 N 台 DB 查询。
短链系统设计性能优化-缓存提速及CDN相关推荐
- WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)
WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 目录 WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 概述 HTTP解析 HTTP请求头 HTTP响应头 H ...
- 100Wqps短链系统,怎么设计?
这段时间,在整理知识星球中面试专栏时看到这么一个字节跳动的二面真题:100Wqps短链系统,怎么设计? 这道题,看上去业务简单,其实,覆盖的知识点非常多: 高并发.高性能分布式 ID Redis Bl ...
- java系统优化方案_Java秒杀系统方案优化 高性能高并发实战-一号门
类别: 视频 语言: Java 发布日期: 2019-03-02 介绍:以"秒杀"这一Java高性能高并发的试金石场景为例,带你通过一系列系统级优化,学会应对高并发. 第1章 课程 ...
- 【在线网课】Java高性能高并发秒杀系统方案优化实战
java教程视频讲座简介: Java高性能高并发秒杀系统方案优化实战 Java秒杀系统方案优化 高性能高并发实战 以"秒杀"这一Java高性能高并发的试金石场景为例,带你通过一系列 ...
- 如何设计一个高性能短链系统?
目录 前言 短链有啥好处,用长链不香吗 短链跳转的基本原理 短链生成的几种方法 1.哈希算法 如何缩短域名 如何解决哈希冲突的问题? 2.自增序列算法 高性能短链的架构设计 总结 前言 今天,我们来谈 ...
- 面试官让我利用哈希算法、布隆过滤器设计一个短链系统
点击上方蓝字设为星标 下面开始今天的学习- 作者 | 码海 来源 | 码海 前言 今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合 ...
- 如何从系统层面优化深度学习计算?
编者按:在图像.语音识别.自然语言处理.强化学习等许多技术领域中,深度学习已经被证明是非常有效的,并且在某些问题上已经达到甚至超越了人类的水平.然而,深度学习对于计算能力有着很大的依赖,除了改变模型和 ...
- 20万用户同时访问一个热点Key,如何优化缓存架构?
来源:石杉的架构笔记(ID:shishan100) 这篇文章,咱们来聊聊热点缓存的架构优化问题.使用缓存集群的时候,最怕的就是热 Key.大 Value 这两种情况. 一.为什么要用缓存集群 啥叫热 ...
- 嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究
[摘要] 嵌入式系统功能的提高,占用了较大内存空间,继而时常出现运行无响应.基于用户方面看,由于系统内存问题影响运行,针对系统内存与进程应用状态研究,可以调整系统数值与执行文件elf分析,进行系统优化 ...
最新文章
- 扬帆起航 继续前行1 nginx+lua+template+cache
- servlet之servletResponse
- 全球及中国多非利特原料药行业发展模式分析及投资前景规划报告2022-2027年版
- iframe标签 父子页面传值
- C++学习——默认构造函数
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)...
- matlab练习程序(图像序列合成视频)
- windows,linux桌面系统管理
- deeplearning.ai——构建一个LR分类器来识别猫
- java调用hownet--jni
- Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(4):验证代码并编写自己的device
- 史上最大DDoS攻击”之争”
- Type-C PD充电简介
- iphone之Info.plist的属性
- iCheck的使用示例
- jQuery_删除及清空节点
- Java - 关于HashMap通过keySet遍历kv的二次调用问题
- 【FPGA】【入门基础】一、FPGA实现跑马灯
- 女生神经末梢最多的部位,女性身上哪里神经最多
- C# 练习ListBox控件用法。
热门文章
- 39岁阿里P9失业了,总资产1.5亿,真相是什么?
- 数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
- Android之 颜色选择器
- 【网络协议趣谈】HTTPS协议加密证书和工作模式
- pdf怎么转换成jpg图片?转换方式说明
- MOOC南京大学操作系统第五次单元测验
- 【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解)
- LeetCode 870. 优势洗牌(田忌赛马问题)
- 【随机区组设计和析因设计的区别】
- wxpython查询功能_wxpython程序基本功能源码整理,包括基本文字,输入框,字体设置,按钮绑定事件触发...