Node Cluster 集群
category
Web
date
May 28, 2023
icon
slug
node-cluster
status
Published
summary
使用cluster集群并采用Round-Robin负载均衡策略来调度多进程
tags
NodeJS
Cluster
type
Post
Demo
- 使用 net 创建 socket 服务器作为 master
- 使用 cluster 创建 work 作为 worker
- 通过 队列 记录 work,方便 master 进行 任务分配
- 通过 socket 服务器 进行流量 管控,并进行流量分发
- 如果不手动创建 master 服务进行管控,则会由 cluster 自行进行 任务分发(默认使用cluster自带的 Round Robin算法调度)
- 实现了 Round Robin 调度方式
- 实现了 randomKillSignal 模拟生成 自杀信号
- work 接受到 信号后,在完成socket通讯后,会自调用 disconnect 进行自杀
- 主服务 监听 work 的 disconnect 行为,并重新创建 work
使用
Server —— 管理&调度
对象声明
- worker池用于记录所有可用worker
- workersStatus表示当前worker是否可用或正在执行
- delayTasks为无worker可用时的缓冲队列
cluster 创建
Round-Robin Schedule
- socket为server接受到的套接字
- signal用于后面模拟进程自杀