热更新也叫Hot Module Replacement,是指当我们对代码修改并保存后,webpack 将会对代码进行重新打包,并将新的模块发送到浏览器端,浏览器用新的模块替换掉旧的模块,以实现在不刷新浏览器的前提下更新页面。热更新也是webpack原生提供的功能之一。
本地的进程间通信(IPC)有很多种方式,但可以概括为以下4类:
在本地环境中,我们可以通过进程PID来唯一标识一个进程,但是在网络通信过程中,首要问题在于如何唯一标识一个进程,这是通信的基础。TCP/IP协议族为我们解决了这个问题,通过网络层的“IP地址”唯一标识主机以及传输层的“协议+端口”唯一标识主机中的应用程序(进程)。这样,利用三元组(IP地址,协议,端口),我们就能够唯一标识网络中的进程,从而实现进程间的通信。这种方式使得各个进程可以利用这个标识与其他进程进行交互。目前使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。就目前而言,几乎所有的应用程序都是采用socket。
数据库的锁定机制是为了确保数据一致性而设计的重要规则。通过锁定机制,数据库管理系统能够管理并发访问数据时可能产生的冲突,确保数据的正确性和完整性。另一方面,MySQL也存在多种数据存储引擎,每种存储引擎的锁机制都是为各自的特定场景而优化设计,所以各存储引擎的锁机制也有较大区别。
我们可能听过Mysql各种叫法的锁,他们大部分是从不同维度来去划分而命名的,如下图。

限流,也称流量控制。是指系统在面临高并发,或者大流量请求的情况下,限制新的请求对系统的访问,从而保证系统的稳定性。限流会导致部分用户请求处理延迟或者被拒,从而影响用户体验,因此也属于一种降级。限流的使用场景包括限制上游访问或者下游调用。常见的限流算法有下面几种。
前面提到随着用户请求并发量的上升,系统复杂度随之提高,单体应用无论从开发效率还是运维管理都已经无法适应时代的发展,于是微服务和分布式系统越来越流行,每个服务都关注自己的业务领域,并通过远程调用的形式互相通信,形成了清晰却又复杂的调用拓扑关系网。服务拆分后的好处不言而喻,但也带来了一些痛点问题。比如,服务发现,服务稳定性,定向的流量调度和负载均衡等等。解决上述问题有几种方式,比如,通过服务框架集成,虽然能做到部分屏蔽功能细节,但缺点是框架逻辑过重,每种框架和语言需要各自实现一套,兼容性差且不够灵活,开发者必不可少得需要学习和使用框架提供的API。所以,我们通常会通过下面介绍的几种方式实现。