# 延时队列集群 **Repository Path**: HG_TYF/delayqueue-cluster ## Basic Information - **Project Name**: 延时队列集群 - **Description**: 这是一个延时队列集群,通过本地文件持久化队列数据,定时清理本地文件中已完成的任务,重启后可从本地文件恢复队列数据到内存。队列执行节点可以部署到多台服务器上,通过主节点将任务分发到任意一个执行节点,执行节点之间互相不受干扰。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-11-08 - **Last Updated**: 2023-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目说明
## 项目背景 通常情况下,延时队列只能在单台服务器内存中对任务队列进行排序和拉取,但单台服务器内存有限,数据量大了服务器内存容易撑爆。 为了分担服务器压力,故写此项目,目的是为了让延时队列能方便地部署到多台服务器上,并且互不干扰。 ## delayqueue-registry 注册中心模块,delayqueue-core模块上线后注册中心会返回所有master节点列表,以供delayqueue-core去连接master节点 ## delayqueue-core
### application.yml配置说明 ``` lua permanent ├── enabled -- 是否开启持久化 ├── async -- 是否异步刷盘 ├── dataDir -- 持久化目录 ├── archive -- 是否开启归档 ├── archiveMaxFileSize -- 单个归档文件大小,单位 KB └──cleanTaskInterval -- 垃圾清理频率,单位 分钟 netty ├── mster └──├──host -- master的ip地址 └──port -- master的端口 ```
## delayqueue-master
通过DelayQueueMasterApplication类启动
与多个delayqueue-core通过netty通讯,将外部传过来的任务数据通过轮询的方式分发到任意一个delayqueue-core节点
可通过IndexController的createTask接口传入任务数据
可通过IndexController的deleteTask接口删除队列中的任务 ### application.yml配置说明 ``` lua netty └── mster └──port -- netty的端口 iptable └──whiteList -- ip白名单,多个ip用空格隔开。不在此ip白名单内的试图连接会自动掉线 ```
## delayqueue-common 任务类、常量、枚举等 ### ExecutorType类说明 每一个枚举一一对应delayqueue-core模块的com.delayqueue.core.executor.impl包下的类的名称前缀(去掉Executor后缀)