• KitDelay
  • 开始
  • GET IT
  • 参数说明
  • JVM参数
  • 程序参数
  • 启动
  • 多节点
  • 单节点
  • API
  • 格式
  • 请求
  • 返回
  • 重定向
  • 认证
  • 数据接口
  • 添加消息
  • 获取到期的任务
  • 批量添加消息
  • 查询到期的任务
  • 查询某个任务的到期时间
  • 集群管理接口
  • 查询Leader节点IP
  • 查询所有节点
  • 添加节点
  • 移除节点

    KitDelay

    KitDelay 是使用KitDB为底层研发的一款延迟队列。KitDelay可以单节点使用,也可建立多节点强一致性的集群

    开始

    GET IT

    GitHub

    参数说明

    JVM参数

    程序参数

    启动

    1. java -jar -Dserver.port=#服务端口号# KitDelay.jar #参数1# #参数2# #参数3# #参数4# #参数5#

    多节点

    多节点模式应至少保证3个节点
    1. 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

    单节点

    单节点模式下,前三个参数用任意字符代替
    1. java -jar -Dserver.port=9000 KitDelay.jar x x x /data/kitdb standalone

    API

    格式

    请求

    请求采用 HTTP请求 GET
    1. GET /pop?limit=100&group=test&key=test
    POST
    1. POST /add?key=testContent-Type: application/json{ "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test"}

    返回

    1. { "errno": 0, "errmsg": null, "data": ""}

    重定向

    写操作和部分节点管理操作只能在Leader节点执行,当操作节点不是Leader节点时,会如下返回,这是需要客户端重定向请求
    1. { "errno": 699, // 需要重定向的状态码 "errmsg": "not leader,need redirect", "data": "192.168.0.3" //重定向地址}

    认证

    请求时在URL加上参数 key=test 如需修改,可在Jar包中的\BOOT-INF\classes\application.properties 中修改

    数据接口

    添加消息

    1. POST /add?key=testContent-Type: application/json{ "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test"}

    如果ID已存在,将会修改已有的消息延迟时间和数据

    获取到期的任务

    1. GET /pop?limit=100&group=test&key=test
    1. { "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 } ]}

    批量添加消息

    1. POST /adds?key=testContent-Type: application/json[ { "id": "f20eb733-a7b5-4a52-8bc8-202859609f65", "data": "{\"task\":\"do some\",\"num\":10081}", "millisecond": 6000, "group":"test" }]

    查询到期的任务

    只查询,消息不会被删除

    1. GET /pop?limit=100&group=test&key=test

    查询某个任务的到期时间

    1. GET /queryTime?id=1f20eb733-a7b5-4a52&group=test&key=test

    集群管理接口

    查询Leader节点IP

    1. GET /leader?key=test HTTP/1.1

    查询所有节点

    1. GET /getNodes?key=test HTTP/1.1

    添加节点

    1. GET /addNode?key=test&node=192.168.0.10:8081 HTTP/1.1

    移除节点

    1. GET /removeNode?key=test&node=192.168.0.10:8081 HTTP/1.1