HTTP接口

大约 3 分钟

HTTP接口

sekiro服务提供下列三组http的API,供业务使用

查看分组列表

展示当前系统有那些注册过的group

http://sekiro.iinti.cn/business/groupListopen in new window

查看队列状态

对于某个group,查看当前挂载了多少个设备,在多设备负载均衡的时候,他会比较有用

http://sekiro.iinti.cn/business/clientQueue?group=testopen in new window

调用转发

通过httpAPI的方式,可以直接拼接如下URL,调用请求将会被转发到SekiroClient的handler上。为方便可视化,请求参数扁平化,即sekiro保留参数和业务参数公用传输字段域

http://sekiro.iinti.cn/business/invoke?group=test&action=test&param=testparmopen in new window

GET和POST

本接口同时支持GET和POST方法,其中GET方法方便浏览器直接打开使用,方便可视化。POST方法则可以支持传递JSON、传递超长字段等常见。

json传递参数方式,还可以支持子json参数,此时在SekiroClient看到也是一个子json

methodurlcontent-typebody
GEThttp://sekiro.iinti.cn/business/invoke?group=test&action=test&param=testparm
POSThttp://sekiro.iinti.cn/business/invokeapplication/json;charset=utf8{
    "group": "test",
    "action": "test",
    "param": "testparm"
}
POSThttp://sekiro.iinti.cn/business/invokeapplication/x-www-form-urlencoded;charset=utf8group=test&action=test&param=testparm

上述3种方法,在SekiroClient中,均会得到相同的参数内容:

{
  "group": "test",
  "action": "test",
  "param": "testparm"
}

sekiro_token

考虑安全要求,sekiro设计了其访问授权机制。分三种场景

场景鉴权解读
DEMO版本github demo版本,不具备授权检查机制,默认所有请求转发放行
商业版本,但为匿名访问方式对于没有在sekiro后台创建group的,该group为匿名访问,此时默认允许直接调用,但是具备一个很低的qps额度。
sekiro管理员可以在后台关闭匿名访问开关,或者调整匿名访问qps额度
商业版本,但为正式访问方式必须鉴权,需要传递额外字段:sekiro_token,如:http://sekiro.iinti.cn:5612/business/invoke?group=test&action=test&param=testparm&sekiro_token=xxxx
其中 sekiro_token是在web后台展示的token内容

调用转发策略

sekiro调用转发提供了三种模式,以帮助灵活的控制转发设备。

OneByOne

默认策略,即对于客户端平均的,一个接一个的进行调度转发。

指定设备,bindClient

由调用方指定特定设备id,然后转发到特定设备,如此实现特定设备session控制。

启用方法:指定参数bind_client,如:

http://sekiro.iinti.cn/business/invoke?group=test&action=test&param=testparm&bind_client=clientId

一致性hash调度

一致性hash分布式服务器弹性伸缩,分布式缓存降压方面有很大作用。一致性哈希可以保证特定的请求分布在特定的节点下。 在抓取场景中,则会导致固定的请求只会被特定的设备处理。这样不会出现请求设备跳跃问题,可以减少一个风控对抗点。

启动用方法: 指定参数:consistent_key,如:

http://sekiro.iinti.cn/business/invoke?group=test&action=test&param=testparm&consistent_key=clientId

上次编辑于:
贡献者: liguobao