learn.lianglianglee.com/专栏/高并发系统设计40问/index.html
2022-08-14 03:40:33 +08:00

215 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>高并发系统设计40问</h1>
<ul>
<li><a href = '\专栏\高并发系统设计40问\00 开篇词 为什么你要学习高并发系统设计?.md.html'>00 开篇词 为什么你要学习高并发系统设计?</a></li>
<li><a href = '\专栏\高并发系统设计40问\01 高并发系统:它的通用设计方法是什么?.md.html'>01 高并发系统:它的通用设计方法是什么?</a></li>
<li><a href = '\专栏\高并发系统设计40问\02 架构分层:我们为什么一定要这么做?.md.html'>02 架构分层:我们为什么一定要这么做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\03 系统设计目标(一):如何提升系统性能?.md.html'>03 系统设计目标(一):如何提升系统性能?</a></li>
<li><a href = '\专栏\高并发系统设计40问\04 系统设计目标(二):系统怎样做到高可用?.md.html'>04 系统设计目标(二):系统怎样做到高可用?</a></li>
<li><a href = '\专栏\高并发系统设计40问\05 系统设计目标(三):如何让系统易于扩展?.md.html'>05 系统设计目标(三):如何让系统易于扩展?</a></li>
<li><a href = '\专栏\高并发系统设计40问\06 面试现场第一期:当问到组件实现原理时,面试官是在刁难你吗?.md.html'>06 面试现场第一期:当问到组件实现原理时,面试官是在刁难你吗?</a></li>
<li><a href = '\专栏\高并发系统设计40问\07 池化技术:如何减少频繁创建数据库连接的性能损耗?.md.html'>07 池化技术:如何减少频繁创建数据库连接的性能损耗?</a></li>
<li><a href = '\专栏\高并发系统设计40问\08 数据库优化方案(一):查询请求增加时,如何做主从分离?.md.html'>08 数据库优化方案(一):查询请求增加时,如何做主从分离?</a></li>
<li><a href = '\专栏\高并发系统设计40问\09 数据库优化方案(二):写入数据量增加时,如何实现分库分表?.md.html'>09 数据库优化方案(二):写入数据量增加时,如何实现分库分表?</a></li>
<li><a href = '\专栏\高并发系统设计40问\10 发号器如何保证分库分表后ID的全局唯一性.md.html'>10 发号器如何保证分库分表后ID的全局唯一性</a></li>
<li><a href = '\专栏\高并发系统设计40问\11 NoSQL在高并发场景下数据库和NoSQL如何做到互补.md.html'>11 NoSQL在高并发场景下数据库和NoSQL如何做到互补</a></li>
<li><a href = '\专栏\高并发系统设计40问\12 缓存:数据库成为瓶颈后,动态数据的查询要如何加速?.md.html'>12 缓存:数据库成为瓶颈后,动态数据的查询要如何加速?</a></li>
<li><a href = '\专栏\高并发系统设计40问\13 缓存的使用姿势(一):如何选择缓存的读写策略?.md.html'>13 缓存的使用姿势(一):如何选择缓存的读写策略?</a></li>
<li><a href = '\专栏\高并发系统设计40问\14 缓存的使用姿势(二):缓存如何做到高可用?.md.html'>14 缓存的使用姿势(二):缓存如何做到高可用?</a></li>
<li><a href = '\专栏\高并发系统设计40问\15 缓存的使用姿势(三):缓存穿透了怎么办?.md.html'>15 缓存的使用姿势(三):缓存穿透了怎么办?</a></li>
<li><a href = '\专栏\高并发系统设计40问\16 CDN静态资源如何加速.md.html'>16 CDN静态资源如何加速</a></li>
<li><a href = '\专栏\高并发系统设计40问\17 消息队列:秒杀时如何处理每秒上万次的下单请求?.md.html'>17 消息队列:秒杀时如何处理每秒上万次的下单请求?</a></li>
<li><a href = '\专栏\高并发系统设计40问\18 消息投递:如何保证消息仅仅被消费一次?.md.html'>18 消息投递:如何保证消息仅仅被消费一次?</a></li>
<li><a href = '\专栏\高并发系统设计40问\19 消息队列:如何降低消息队列系统中消息的延迟?.md.html'>19 消息队列:如何降低消息队列系统中消息的延迟?</a></li>
<li><a href = '\专栏\高并发系统设计40问\20 面试现场第二期:当问到项目经历时,面试官究竟想要了解什么?.md.html'>20 面试现场第二期:当问到项目经历时,面试官究竟想要了解什么?</a></li>
<li><a href = '\专栏\高并发系统设计40问\21 系统架构每秒1万次请求的系统要做服务化拆分吗.md.html'>21 系统架构每秒1万次请求的系统要做服务化拆分吗</a></li>
<li><a href = '\专栏\高并发系统设计40问\22 微服务架构:微服务化后,系统架构要如何改造?.md.html'>22 微服务架构:微服务化后,系统架构要如何改造?</a></li>
<li><a href = '\专栏\高并发系统设计40问\23 RPC框架10万QPS下如何实现毫秒级的服务调用.md.html'>23 RPC框架10万QPS下如何实现毫秒级的服务调用</a></li>
<li><a href = '\专栏\高并发系统设计40问\24 注册中心:分布式系统如何寻址?.md.html'>24 注册中心:分布式系统如何寻址?</a></li>
<li><a href = '\专栏\高并发系统设计40问\25 分布式Trace横跨几十个分布式组件的慢请求要如何排查.md.html'>25 分布式Trace横跨几十个分布式组件的慢请求要如何排查</a></li>
<li><a href = '\专栏\高并发系统设计40问\26 负载均衡:怎样提升系统的横向扩展能力?.md.html'>26 负载均衡:怎样提升系统的横向扩展能力?</a></li>
<li><a href = '\专栏\高并发系统设计40问\27 API网关系统的门面要如何做呢.md.html'>27 API网关系统的门面要如何做呢</a></li>
<li><a href = '\专栏\高并发系统设计40问\28 多机房部署:跨地域的分布式系统如何做?.md.html'>28 多机房部署:跨地域的分布式系统如何做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\29 Service Mesh如何屏蔽服务化系统的服务治理细节.md.html'>29 Service Mesh如何屏蔽服务化系统的服务治理细节</a></li>
<li><a href = '\专栏\高并发系统设计40问\30 给系统加上眼睛:服务端监控要怎么做?.md.html'>30 给系统加上眼睛:服务端监控要怎么做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\31 应用性能管理:用户的使用体验应该如何监控?.md.html'>31 应用性能管理:用户的使用体验应该如何监控?</a></li>
<li><a href = '\专栏\高并发系统设计40问\32 压力测试:怎样设计全链路压力测试平台?.md.html'>32 压力测试:怎样设计全链路压力测试平台?</a></li>
<li><a href = '\专栏\高并发系统设计40问\33 配置管理:成千上万的配置项要如何管理?.md.html'>33 配置管理:成千上万的配置项要如何管理?</a></li>
<li><a href = '\专栏\高并发系统设计40问\34 降级熔断:如何屏蔽非核心系统故障的影响?.md.html'>34 降级熔断:如何屏蔽非核心系统故障的影响?</a></li>
<li><a href = '\专栏\高并发系统设计40问\35 流量控制:高并发系统中我们如何操纵流量?.md.html'>35 流量控制:高并发系统中我们如何操纵流量?</a></li>
<li><a href = '\专栏\高并发系统设计40问\36 面试现场第三期:你要如何准备一场技术面试呢?.md.html'>36 面试现场第三期:你要如何准备一场技术面试呢?</a></li>
<li><a href = '\专栏\高并发系统设计40问\37 计数系统设计(一):面对海量数据的计数器要如何做?.md.html'>37 计数系统设计(一):面对海量数据的计数器要如何做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\38 计数系统设计50万QPS下如何设计未读数系统.md.html'>38 计数系统设计50万QPS下如何设计未读数系统</a></li>
<li><a href = '\专栏\高并发系统设计40问\39 信息流设计(一):通用信息流系统的推模式要如何做?.md.html'>39 信息流设计(一):通用信息流系统的推模式要如何做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\40 信息流设计(二):通用信息流系统的拉模式要如何做?.md.html'>40 信息流设计(二):通用信息流系统的拉模式要如何做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\加餐 数据的迁移应该如何做?.md.html'>加餐 数据的迁移应该如何做?</a></li>
<li><a href = '\专栏\高并发系统设计40问\期中测试 10道高并发系统设计题目自测.md.html'>期中测试 10道高并发系统设计题目自测</a></li>
<li><a href = '\专栏\高并发系统设计40问\用户故事 从“心”出发,我还有无数个可能.md.html'>用户故事 从“心”出发,我还有无数个可能</a></li>
<li><a href = '\专栏\高并发系统设计40问\结束语 学不可以已.md.html'>结束语 学不可以已</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>