首页 > 其他分享 >高并发实战总结01

高并发实战总结01

时间:2023-08-21 20:33:44浏览次数:45  
标签:实战 01 请求 响应 URL 生成器 并发 缓存 服务器

一、短URL设计

高并发实战总结01 _重定向

   对于需要展示短 URL 的应用程序,由该应用调用短 URL 生成器生成短 URL,并将该短 URL 展示给用户,用户在浏览器中点击该短 URL 的时候,请求发送到短 URL 生成器(短 URL 生成器以 HTTP 服务器的方式对外提供服务,短 URL 域名指向短 URL 生成器),短 URL 生成器返回 HTTP 重定向响应,将用户请求重定向到最初的原始长 URL,浏览器访问长 URL 服务器,完成请求服务

高并发实战总结01 _服务器_02

高并发实战总结01 _生成器_03

1.生成短URL算法

高并发实战总结01 _生成器_04

高并发实战总结01 _服务器_05

高并发实战总结01 _服务器_06

高并发实战总结01 _生成器_07

高并发实战总结01 _生成器_08

高并发实战总结01 _生成器_09

   对于用户通过客户端请求访问短 URL 的过程(即输入短 URL,请求返回长 URL),请求通过负载均衡服务器发送到短 URL 服务器集群,短 URL 服务器首先到缓存服务器中查找是否有该短 URL,如果有,立即返回对应的长 URL,短 URL 生成服务器构造重定向响应返回给客户端应用。

   如果缓存没有用户请求访问的短 URL,短 URL 服务器将访问 HBase 短 URL 数据库服务器集群。如果数据库中存在该短 URL,短 URL 服务器会将该短 URL 写入缓存服务器集群,并构造重定向响应返回给客户端应用。如果 HBase 中没有该短 URL,短 URL 服务器将构造 404 响应返回给客户端应用,时序图如下


高并发实战总结01 _生成器_10

过期短 URL 清理服务器会每个月启动一次,将已经超过有效期(2 年)的 URL 数据删除,并将这些短 URL 追加写入到短 URL 预生成文件中。

为了保证系统高可用,Fuxi 的应用服务器、文件服务器、数据库服务器都采用集群部署方案,单个服务器故障不会影响 Fuxi 短 URL 的可用性。

对于 Fuxi 的高性能要求,80% 以上的访问请求将被设计为通过缓存返回。Redis 的缓存响应时间 1ms 左右,服务器端请求响应时间小于 3ms,满足 80% 请求小于 5ms 的性能目标。对于缓存没有命中的数据,通过 HBase 获取,HBase 平均响应时间 10ms,也可以满足设计目标中的性能指标。

高并发实战总结01 _服务器_11

标签:实战,01,请求,响应,URL,生成器,并发,缓存,服务器
From: https://blog.51cto.com/u_6478076/7179136

相关文章

  • 深入学习JVM01
    一、云时代的JVM云时代的来临也给Java带来了不小的挑战,速度、内存、部署与管理的问题逐渐变成了Java的负累。不过它并没有坐以待毙,而是选择积极地适应新时代,引入更多新特性来应对这些挑战。......
  • A018 《BGM计算器》编程 源码
    一、课程介绍本节课学习新的数据类型float,结合if嵌套和比较运算符,实现一个BMI指数计算器。二、重难点解析浮点数float浮点数其实就是小数,使用float()方法可以把整数和内容为数字的字符串转换为浮点数。比较运算符在Python中,大于、小于等符号叫做比较运算符。比较运算经常......
  • 「SDOI2011」计算器tj
    你被要求设计一个计算器完成以下三项任务:1.给定y、z、P,计算yzmodP的值2.给定y、z、P,计算满足xy≡z(modP)的最小非负整数x;3.给定y、z、P,计算满足yx≡z(modP)的最小非负整数x。输入第一行包含两个正整数T,K分别表示数据组数和询问类型-对于一个测试点内的所有数据,询问类......
  • Raspberry Pi 内网穿透实战教程 All In One
    RaspberryPi内网穿透实战教程AllInOne树莓派使用场景使用RaspberryPi搭建个人Web项目的服务器,并且提供外网访问的能力(Web,SSH)数据安全,私有代码低成本服务器容器化微服务全栈开发demos(......
  • Elasticsearch实战 | match_phrase搜不出来,怎么办?
    1、问题抛出某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来。举例:title=公路局正在治理解放大道路面积水问题。输入关键词:道路,能否搜索到这个document呢?实际应用中可能需要:1)检索关键词”理解”、”解放”、”道路”、“理解放大”,都能搜出......
  • 北大ACM poj 1001
    网上搜来的借鉴一下#include<stdio.h>main(){doublef;intn,i,j;inttop,bottom;intshow;for(;~scanf("%lf%d",&f,&n);){intp[300]={1},tmp=0;f*=1e6;for(i=0;i++<n;)......
  • linux0.01代码阅读
    代码地址:https://cdn.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz代码目录: main函数: 代码中的命名解释:CMOS:存储计算机基本硬件设置(如日期、时间、启动顺序等)的半导体存储器,CMOS_READ从硬件时间存储的固件读取时间,存储到startup_time中trap:陷阱,中断的一......
  • 代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的
     530.二叉搜索树的最小绝对差   卡哥建议:需要领悟一下二叉树遍历上双指针操作,优先掌握递归   题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html ......
  • CF1101F Trucks and Cities
    题目大意有\(n\)个城市坐落在一条数轴上,第\(i\)个城市位于位置\(a_i\)。城市之间有\(m\)辆卡车穿行。每辆卡车有四个参数:\(s_i\)为起点编号,\(f_i\)为终点编号,\(c_i\)表示每行驶\(1\)个单位长度需要消耗的油量,\(r_i\)表示可以在路途中加油的次数。当卡车到达一个城......
  • 001 DDR基础知识(一)存储器分类
    1内存     内存(Memory)指的是内存存储器,又称为主存,是CPU用来直接寻址和存储的空间,它相当于一座桥梁,用以负责诸如硬盘、主板、显卡等硬件上的数据与处理器之间数据交换处理,我们可以把内存看作数据缓存区,一个高速的缓存区。内存之所以称为内存,是相对于硬盘这些外存而言,我们......