大型NodeJS项目架构与优化
使用场景:
- proxy(API冗余,跨域)
- vue ssr(服务端渲染)
- socket(大并发,通讯)
- 区块链(创业公司,新兴行业)
讨论什么?
- NodeJS异步IO原理及优化方案
- NodeJS内存管理及优化方案
- 大型项目Node站点结构原理
- 服务器集群与Node集群应用
- UV过千万的Node站点真身
一.NodeJS异步IO原理及优化方案
- 异步IO消除UI阻塞
- EventLoop LIBUV(事件通知) EVENT QUENE事件队列 回调CALLBACK WORKER THREADS(线程池)
- setTimeout setInterval(线程池不参与 ) setImmedate优先级比 process.nextTick低
- 函数式编程 app.use(fun) 高阶函数 EventEmitter
- 异步手段 step wind Bigpipe Q.js(老项目express推荐) promise(promise.all并发) async await(新项目koa 记得引入polyfill)
- IO昂贵,分布式IO更昂贵
- 适用于IO密集 不适用于CPU密集(书写方式不舒服回调async await,银行处理大量计算,导致卡死)
二.NodeJS内存管理及优化方案
- 闭包使用不得当,CPU爆满
- 垃圾回收机制
- 新生代(存活时间短)scavenge算法(from to交换位置) marksweep标记清除 内存不连续,用mark-compact合并内存
- 老生代
三.大型项目Node站点结构原理
- MVC经典框架(Yii标准MVC)
- .NET多层 BLL 业务逻辑 DALFactory SQLDAL DLLibrary DBUtil
- Java action dao po service common
四.服务器集群与Node集群应用
- 前端工程化压缩打包合并CDN
- 单测 压测 性能分析工具发现BUG
- 编写nginx.conf实现负载均衡和反向代理
- pm2(cluster)集群启动应用,小流量灰度上线 发现BUG
- 服务器集群 nginx lvs->pm2(CDN)->varnish(缓存)->Node->Java->DB->write(read)->BACK
- 上线前的不眠夜
五.UV过千万的Node站点真身
- docs(文档)
- nodeuii(node)
- scripts(项目启动脚本bin)
- webapp(前端页面)
- webapp.build.sh(前端打包)
大型NodeJS项目架构与优化的更多相关文章
- nodeJS(2)深了解: nodeJS 项目架构详解(app.js + Express + Http)
简略了解:nodeJS 深了解(1): Node.js + Express 构建网站预备知识 环境: 环境: win7 + nodeJS 版本(node): 新建 nodeJS 项目: 名称为: te ...
- 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...
- 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
- java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘
15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...
- 15套java架构师、集群、高可用、高可扩 展、高性能、高并发、性能优化Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
- Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战
视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...
- 大型网站技术架构(3):WEB 前端性能优化
上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...
- Spring 05: 用DI(依赖注入)优化Spring接管下的三层项目架构
背景 用注解改造前面Spring博客集里(指 Spring 02)Spring接管下的三层项目架构 对前面Spring博客集里(指 Spring 04)@Controller + @Service + ...
- .net 大型分布式电子商务架构说明
.net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便 ...
随机推荐
- js数组作为参数用ajax向后台传参数
/*前台往后台传参数时,可以这样写*/ var chessId = "123"; var i=0; var data = []; /*添加单个参数*/ data.push({nam ...
- 二分图判定 POJ-2492
这是由AC代码改的模板,不能直接交啊 #include<iostream> #include<vector> #include<cstring> using nam ...
- MySQL5.5登录密码忘记了,怎嘛办?
1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysqld --skip-grant- tables回车.如果没有出现提示信息,那就对了. 4.再开一 ...
- Weblogic常见故障常:JDBC Connection Pools【转】
WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...
- Nginx 学习笔记(四)nginx-module-vts模块
看看已经搭建好的效果图 1.基本信息 2.过滤信息 3.上游服务器 4.其他进程 1.获取组区域(默认返回json格式数据) (1)mainZones https://www.tinywan.com/ ...
- 浅谈分词算法(4)基于字的分词方法(CRF)
目录 前言 目录 条件随机场(conditional random field CRF) 核心点 线性链条件随机场 简化形式 CRF分词 CRF VS HMM 代码实现 训练代码 实验结果 参考文献 ...
- web.py 模板错误记录
错误信息 Traceback (most recent call last): File , in process return self.handle() File , in handle retu ...
- ATS metric query
ATS metric query 参考:ATS metric query proxy.node.cache_hit_mem_ratio proxy.node.cache_hit_mem_ratio_a ...
- python的安装和pycharm的安装
下载地址 官网:https://www.python.org/downloads/release/python-372/ Window 平台安装 Python: Add python xx to ...
- shell 终端常用插件
参考链接: http://get.ftqq.com/992.get 1.zsh 2.autojump 3.apt-get install lamp-server^ 4.tldr 5.tree (显示目 ...