高性能是指系统或应用程序在单位时间内能够处理更多的工作量或请求。
高可用性是指系统或服务能够在面对故障或异常情况时保持持续可用和正常运行的能力。
高扩展性是指系统或应用程序能够在面对不断增长的负载时保持性能和吞吐量的能力。nginx主备+keepalived实现nginx服务的高可用
Nginx + HAProxy
简介:使用 HAProxy 作为负载均衡器,将请求分发到多个 Nginx 实例。
Nginx + LVS (Linux Virtual Server)LVS 是一种基于IP 的负载均衡 解决方案,可以将请求转发到多个后端 Nginx 实例。
Nginx + Docker Swarm/Kubernetes,在容器编排平台(如 Docker Swarm 或 Kubernetes)中部署 Nginx。可自动扩展和管理 Nginx 实例,使用服务发现和负载均衡功能实现高可用性。在面对高并发需求时,可以采取多种技术和策略来提升系统的处理能力和响应速度。以下是一些常用的技术和方法:
**多线程和多进程编程:
- 利用多核处理器的并行处理能力,通过创建多个线程或进程来同时处理多个任务。**
**异步编程:
- 异步编程模型可以帮助应用程序在等待IO操作(如数据库访问或网络通信)完成时不阻塞,从而提高整体性能和吞吐量。Node.js和Python的asyncio库是异步编程的常见例子。**
**负载均衡:
- 使用负载均衡器(如Nginx、HAProxy)可以将流量分散到多个服务器上,避免单点过载,提高系统的总体处理能力。**
**缓存机制:
- 引入缓存(如Redis、Memcached)可以减少数据库的读取次数,缓存频繁查询的结果,加快响应速度。
- CDN(内容分发网络)也是一种缓存策略,用于缓存静态资源在地理上分散的节点,减少源服务器的负载和响应时间。**
**数据库优化:
- 优化数据库查询,使用合适的索引,避免复杂的关联查询可以显著提升数据库的处理能力。
- 数据库读写分离,将查询压力分散到多个从服务器。
- 使用分布式数据库系统,如Cassandra或MongoDB,这些系统可以在多个节点间分散负载。**
**前端优化:
- 通过优化前端资源(如图片压缩、合并CSS和JavaScript文件、使用异步加载技术)减少单个页面的请求量,间接降低后端压力。**
为什么使用微服务?
微服务:把一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型、独立开发、独立部署、独立运维。并且多个服务相互协调、相互配合;最终完成用户的价值
但基于vue-cli(脚手架) 前提是需要安装一个node.js,它可以为前端开发提供服务功能
下载并安装项目依赖,即node_modules 。由于我们项目的大小90%都是项目依赖所占用,所以通常在给别人发送我们的代码时不用发送node_modules文件夹,对方在接收后通过在终端输入npm install命令进行手动下载项目依赖。
在下载之前需要先删除 package-lock.json 文件
如果package-lock.json 文件删除后仍然出现,可以在终端输入命令:
npm config set package-lock false