node cluster 集群增加你应用的负载能力

node的 cluster集群可有效的增加应用负载能力

以koa为例,实例化创建一个应用:ESM写法(./server.mjs)
import Koa from 'koa'

export const createServer = (port = 8900) => {
	const app = new Koa()
	app.use(async ctx => {
		ctx.body = 'i am koa'
	})
	app.listen(port, () => { console.log(`server run on http://localhost:${port}`) })
	return app
}
然后部署时以集群部署:ESM写法(./cluster.mjs)
import cluster from 'node:cluster'
import { cpus } from 'node:os'

import { createServer } from './server.mjs'

const cpuNum = cpus().length // cpu数量

// 判断集群
if (cluster.isPrimary) { // node 18 版本新增属性,18以下是isMaster(已弃用)
	for(let i = 0; i < cpuNum; i ++) {
		cluster.fork() // 子集群
	}
} else {
	createServer() // 创建应用,应用之间会共享端口
}
本地调试则无需集群:(./dev.mjs)
import { createServer } from './server.mjs'

const app = createServer()
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值