编辑
2026-06-23
undefined
00

前言

分布式系统涵盖的知识面非常广,all in one本篇我会介绍下我所了解的知识点,预计完稿后的知识密度较高,本篇只点到为止,每个点都有很多值得深挖和学习的内容,后续逐渐会有相关系列文章来具体阐述。

挑战

1990年,浏览器诞生。1994年底,万维网联盟(World Wide Web Consortium,简称3W)成立,这标志着万维网的正式诞生。此时的网页以HTML为主,是纯静态的网页,信息流只能通过服务器到客户端单向流通,由此世界进入Web1.0时代,至今三十年过去了,互联网已经进入web3.0。随之而来遇到的挑战非常多,包括但不局限于下面几点

  • 高并发,大流量:用户常用的应用往往集中在头部的那几个,参考Google日均PV35亿,日IP访问数3亿。另一方面,特殊时期节点,用户对平台访问和使用集中度非常高,导致的瞬时qps也非常高。典型的如12306节假日抢票,淘宝双11,春节红包会场等等,流量的波峰波谷明显,非常考验整体的系统架构设计,同时对系统的可升缩性也提出了要求。
  • 全球化,用户分布广:全球化的公司比如谷歌,meta,国内典型的如字节跳动等在全球化发展过程中遇到非常多的挑战,包括网络、语言、文化等,技术上也会带来诸多挑战,比如,如何让不同区域用户的使用体验趋同,不同机房之间的流量调度和数据隔离问题,用户隐私数据的合规问题等等。
  • 大数据:需要存储、管理海量数据,需要使用大量服务器。Facebook每周上传的照片数量接近10亿,百度收录的网页数目有数百亿,Google有近百万台服务器为全球用户提供服务。
  • 需求迭代快:和传统软件的版本发布频率不同,互联网产品为快速适应市场,满足用户需求,其产品发布频率极高。一般大型网站的产品每周都有新版本发布上线,中小型网站的发布更频繁,有时候一天会发布多次。
编辑
2026-06-23
undefined
00

前言

Redux是 JavaScript 状态容器,我们通常会在React的项目中搭配这个库用来处理复杂的业务逻辑。

在学习使用Redux一阶段以后,觉得有必要看一下源码,一方面提高对Redux的理解,另一方面也可以通过阅读源码来提高自身的程序设计水平。

编辑
2026-06-23
undefined
00

promise介绍

Promise是异步编程的一种解决方案。ES6提供原生支持,并为Promise提供了统一的 API。

从语法上说,Promise是一个JS的原生对象,从它可以获取异步操作的消息。

Promise 本身是一个构造函数,可以像下面这样构造一个Promise实例

javascript
const p = new Promise((resolve, reject) => { resolve('success'); }); console.log(p);

打印结果如下

编辑
2026-06-23
undefined
00

概述

索引是用来快速检索出具有特定值的记录,它可以大大提高查询速度。如果没有索引,数据库就必须从第一条记录开始进行全表扫描来找到相关的行。数据越多,成本就越高,检索时如果表的列存在索引,那么MySQL就能快速到达指定位置去搜索数据文件,而不必查看所有数据。

索引是存储引擎快速找到记录的一种数据结构,例如 MyISAM 引擎和 Innodb 引擎都使用 B+ Tree 作为索引结构。 ——《高性能MySQL》

MySQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;MyISAM 和 InnoDB存储引擎只支持 BTREE 索引,MEMORY/HEAP 存储引擎可以支持HASH和BTREE索引。

  • BTREE 索引:BTREE 索引是一种平衡树数据结构,节点按照键值有序排列,可以快速进行范围查询和排序。
  • HASH 索引:基于哈希表实现,通过哈希函数将键值映射到哈希表中的位置。
编辑
2026-06-23
undefined
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。