Nginx 学习笔记:http代理/负载均衡/长连接/健康检查
Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 在使用中,经常将其用到以下几个方面: 反向代理 SPA/SSR 应用 负载均衡 Ubuntu 配置 Nginx 安装 nginx: sudo apt-get install nginx 重启 nginx 前,需要测试 nginx 配置是否...
Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 在使用中,经常将其用到以下几个方面: 反向代理 SPA/SSR 应用 负载均衡 Ubuntu 配置 Nginx 安装 nginx: sudo apt-get install nginx 重启 nginx 前,需要测试 nginx 配置是否...
背景 目前,主流 db 都支持事务。但事务保证完全 ACID 是有代价的。 所以有时候会为了性能,在某些场景种,弱化事务的 ACID。这是通过设置不同的隔离级别来实现的。 不同的隔离级别能解决不同的读写异常场景,要了解这些读写异常场景,才能根据情况选择合适的隔离级别。 数据隔离等级 快照隔离 快照隔离的一个事务读到的数据都来自于数据库某同一个时刻的状态(“快照”得名于此),然后所...
乐观锁 乐观锁认为一般情况下数据不会造成冲突(所以叫“乐观”),所以在数据进行提交更新时才会对数据的冲突与否进行检测。 它本身是种程序设计思想,通过一种标识来决定数据是否可以操作。 现在普遍的做法是给数据加一个版本号或者时间戳的方式来实现乐观锁操作过程。例如新增一个 version 字段,更新的时候: UPDATE ... SET version=version+1 WHERE ve...
认识装饰器 首先装饰器只能用在class上,不能用在func上。包括类、类方法、类属性、类方法的参数、类装饰器。 然后装饰器执行的时机,在定义类的时候执行的。如果对于一个class的func,多个装饰器,那么执行顺序是靠近方法的优先执行。 类装饰器 类装饰器的入参是类的构造函数。有2种常见用法。 用法1:当返回新的构造函数时,可以重载类的构造函数 type ClassConstr...
前言 JS 中的垃圾回收算法有两个版本: 引用计数 标记清除 在 c 语言中,内存的申请、使用和释放(内存生命周期)每一步都是开发者控制;在自动 gc 的语言中,例如 js 中,开发者只感知内存的使用。 引用计数算法 简单说:如果对象被其它对象引用,那么就不能被垃圾回收。 原理:每个对象有个属性值,来标识它被引用的次数。为 0 的时候,可以垃圾回收。 例如: le...
概述 MySQL 的主从一致是通过 binlog 复制实现的。 关于 binlog 复制可以从这三个方面来把握: binlog 复制机制 binlog 复制延迟 异步、半同步、MGR 什么是 binlog? binlog 叫做归档日志,是 mysql 提供的,所有的存储引擎都可以使用这个日志,追加写,日志文件会不断增大,在数据备份时我们就会用到这个文件,binlog...
场景 当异步处理过多的时候,比如Promise.all() 并发发起多个 Promise,假设 Promise 是 tcp 连接,并且数量达到几万个,会带来性能问题或触发系统限制。 解决思路 对 Promise 做并发限制。也就是准备一个 Pool(池),用来限制并发上限数。 例如 Pool 中上限是 4,而需要并发的 Promise 数量是 8。那么会先取前 4 个 Promise...
一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n 个关键字重新映射,其中 K 是关键字的数量,n 是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。 — 维基百科 应用场景 多用于分布式 Web 服务中。每个服务代表哈希环的一个节点,当此节点发生改变时候,例如挂掉,只有部分缓存会重新计算分布,而不是...
场景 基于 LRU 的缓存是否失效的指标是:是否为最近使用。 在此基础上,新增了 maxAge 字段,表示缓存有效期,数据结构: maxAge: number // 有效期 data: any // 缓存 为什么增加缓存有效期? 有些数据被频繁访问,按照 LRU 策略,不会失效。 但是数据需要刷新,否则会失去实效性,因此新增一个有效期。 如果过期,强行刷存。 ...
场景 同一公司多个系统,每个系统都需要实现一遍登录校验功能。维护成本、同步成本和开发成本均高。 用户使用系统,也需要多次登录。 SSO(单点登录)就是为了解决多个系统登录授权的问题。它分为单点登录和单点注销。 介绍 单点登录:用户在子系统 a 登录后,在子系统 b、c 均不用重复登录。 单点注销:用户在子系统 a 注销/过期后,在子系统 b、c 均注销/过期。 整体设计 SS...