mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-09-25 20:56:42 +08:00
215 lines
17 KiB
HTML
215 lines
17 KiB
HTML
<!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>
|