使用场景:

  1. proxy(API冗余,跨域)
  2. vue ssr(服务端渲染)
  3. socket(大并发,通讯)
  4. 区块链(创业公司,新兴行业)

讨论什么?

  1. NodeJS异步IO原理及优化方案
  2. NodeJS内存管理及优化方案
  3. 大型项目Node站点结构原理
  4. 服务器集群与Node集群应用
  5. UV过千万的Node站点真身

一.NodeJS异步IO原理及优化方案

  1. 异步IO消除UI阻塞
    1. EventLoop LIBUV(事件通知)  EVENT QUENE事件队列 回调CALLBACK WORKER THREADS(线程池)
    2. setTimeout setInterval(线程池不参与 ) setImmedate优先级比 process.nextTick低
    3. 函数式编程 app.use(fun) 高阶函数 EventEmitter
    4. 异步手段  step  wind Bigpipe Q.js(老项目express推荐)   promise(promise.all并发) async await(新项目koa 记得引入polyfill)
  2. IO昂贵,分布式IO更昂贵
  3. 适用于IO密集  不适用于CPU密集(书写方式不舒服回调async await,银行处理大量计算,导致卡死)

二.NodeJS内存管理及优化方案

  1. 闭包使用不得当,CPU爆满
  2. 垃圾回收机制
    1. 新生代(存活时间短)scavenge算法(from  to交换位置) marksweep标记清除  内存不连续,用mark-compact合并内存
    2. 老生代

三.大型项目Node站点结构原理

  1. MVC经典框架(Yii标准MVC)
  2. .NET多层 BLL 业务逻辑  DALFactory  SQLDAL DLLibrary DBUtil
  3. Java action dao po service common

四.服务器集群与Node集群应用

  1. 前端工程化压缩打包合并CDN
  2. 单测 压测 性能分析工具发现BUG
  3. 编写nginx.conf实现负载均衡和反向代理
  4. pm2(cluster)集群启动应用,小流量灰度上线 发现BUG
  5. 服务器集群 nginx lvs->pm2(CDN)->varnish(缓存)->Node->Java->DB->write(read)->BACK
  6. 上线前的不眠夜

五.UV过千万的Node站点真身

  1. docs(文档)
  2. nodeuii(node)
  3. scripts(项目启动脚本bin)
  4. webapp(前端页面)
  5. webapp.build.sh(前端打包)

大型NodeJS项目架构与优化的更多相关文章

  1. nodeJS(2)深了解: nodeJS 项目架构详解(app.js + Express + Http)

    简略了解:nodeJS 深了解(1): Node.js + Express 构建网站预备知识 环境: 环境: win7 + nodeJS 版本(node): 新建 nodeJS 项目: 名称为: te ...

  2. 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...

  3. 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  4. java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘

    15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...

  5. 15套java架构师、集群、高可用、高可扩 展、高性能、高并发、性能优化Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  6. Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战

    视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...

  7. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  8. Spring 05: 用DI(依赖注入)优化Spring接管下的三层项目架构

    背景 用注解改造前面Spring博客集里(指 Spring 02)Spring接管下的三层项目架构 对前面Spring博客集里(指 Spring 04)@Controller + @Service + ...

  9. .net 大型分布式电子商务架构说明

    .net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便 ...

随机推荐

  1. 初探ant-design(web版本二)

    Dropdown下拉菜单 向下弹出的列表. 何时使用# 当页面上的操作命令过多时,用此组件可以收纳操作元素.点击或移入触点,会出现一个下拉菜单.可在列表中进行选择,并执行相应的命令. 最简单的下拉菜单 ...

  2. win+R快捷启动程序

    win10: Win+R cmd:命令行程序 notepad:记事本 winword:word文档 calc:记事本 mspaint:画图 wordpad:写字板

  3. 中文参考文献如何导入到endnote中

    比如我想在文献中插入“2型糖尿病患者并发脑卒中的前瞻性研究”这篇参考文献,在主题里面输入文献标题,勾选我们要找的文献,点击“导出/参考文献” 导出来以后,点击屏幕右下角界面的“导出/参考文献”,下图红 ...

  4. arm裸机通过uboot运行hello world程序测试结果

    开发板EasyARM i.MX280A CPU:arm926ejs helloworld程序使用的编译器 (1)arm-fsl-linux-gnueabi-gcc  version gcc4.4.4 ...

  5. vue router.push(),router.replace(),router.go()

    1.router.push(location)=====window.history.pushState 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 history ...

  6. 面向对象【day08】:类的特殊成员(一)

    本节内容 1.__doc__2.__module__和__class__3.__init__4.__del__5 .__call__6 .__dict__7 .__str__8 .__getitem_ ...

  7. linux 出现ping,错误提示:connect :network is unreachable

    今天克隆Centos7后  修改IP地址 修改前: IP:172.16.0.198   默认网关:172.16.0.254 修改后: IP:172.16.1.100  默认网关:172.16.0.25 ...

  8. IntelliJ IDEA 界面介绍及常用配置

    一:配置Maven File-->Settings-->搜索框输入maven -->配置maven home directory 跟 user setting file 二:配置JD ...

  9. postgresql 随机函数

    随机函数 --function to get random number============================================================= -- ...

  10. centos7 redmine安装过程

     mysql安装配置   redmine 部署过程 redmin官方文档写的太烂加上不熟悉ruby搞了半天,回到家后觉得还是记录下好,希望可以帮助有需要的人,少走弯路. 版本说明 下面的版本很重要re ...