- KitDelay
- 开始
- GET IT
- 参数说明
- JVM参数
- 程序参数
- 启动
- 多节点
- 单节点
- API
- 格式
- 请求
- 返回
- 重定向
- 认证
- 数据接口
- 添加消息
- 获取到期的任务
- 批量添加消息
- 查询到期的任务
- 查询某个任务的到期时间
- 集群管理接口
- 查询Leader节点IP
- 查询所有节点
- 添加节点
- 移除节点
KitDelay
KitDelay 是使用KitDB为底层研发的一款延迟队列。KitDelay可以单节点使用,也可建立多节点强一致性的集群开始
GET IT
GitHub参数说明
JVM参数
程序参数
启动
java -jar -Dserver.port=#服务端口号# KitDelay.jar #参数1# #参数2# #参数3# #参数4# #参数5#
多节点
多节点模式应至少保证3个节点java -jar -Dserver.port=9000 KitDelay.jar /data/raft 192.168.0.3:8081 192.168.0.3:8081,192.168.0.4:8081,192.168.0.2:8081 /data/kitdb def
单节点
单节点模式下,前三个参数用任意字符代替java -jar -Dserver.port=9000 KitDelay.jar x x x /data/kitdb standalone
API
格式
请求
请求采用 HTTP请求 GET
POSTGET /pop?limit=100&group=test&key=test
POST /add?key=testContent-Type: application/json{ "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test"}
返回
{ "errno": 0, "errmsg": null, "data": ""}
重定向
写操作和部分节点管理操作只能在Leader节点执行,当操作节点不是Leader节点时,会如下返回,这是需要客户端重定向请求{ "errno": 699, // 需要重定向的状态码 "errmsg": "not leader,need redirect", "data": "192.168.0.3" //重定向地址}
认证
请求时在URL加上参数 key=test 如需修改,可在Jar包中的\BOOT-INF\classes\application.properties 中修改数据接口
添加消息
POST /add?key=testContent-Type: application/json{ "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test"}
如果ID已存在,将会修改已有的消息延迟时间和数据
获取到期的任务
GET /pop?limit=100&group=test&key=test
{ "errno": 0, "errmsg": null, "data": [{ "group": "test", "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 1574915598686 }, { "group": "test", "id": "d1899359-8068-4597-b224-17d93f67f4b5", "data": "{\"task\":\"do some 2\",\"num\":102081}", "millisecond": 1574915625772 } ]}
批量添加消息
POST /adds?key=testContent-Type: application/json[ { "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test" }]
查询到期的任务
只查询,消息不会被删除
GET /pop?limit=100&group=test&key=test
查询某个任务的到期时间
GET /queryTime?id=1f20eb733-a7b5-4a52&group=test&key=test
集群管理接口
查询Leader节点IP
GET /leader?key=test HTTP/1.1
查询所有节点
GET /getNodes?key=test HTTP/1.1
添加节点
GET /addNode?key=test&node=192.168.0.10:8081 HTTP/1.1
移除节点
GET /removeNode?key=test&node=192.168.0.10:8081 HTTP/1.1
