当前位置: 首页 > news >正文

Boring Blog

KK限制方案

KK的限制和使用哪个API无关,Rest Websocket 和Fix 共享同一个限频规则。

Rate of transactions(Main)

基本概念:
阈值:计数器能达到的最大值,取决于用户等级
计数器:当
衰减数:每秒钟计数器衰减的数量,取决于用户等级,当计数器不为0的时候,就会每秒进行一次递减 t * count。
等级参数:
1.start tier:
阈值:60  衰减数:1
2Intermediate Tier 
阈值:125 衰减数:2.34
3Pro Tier
阈值:180 衰减数:3.75

初始化订阅订单websocket下单时从subscribe消息中可以获取到当前的阈值以判断当前的用户等级。
订单推送回来之后可以获取到ratecount来判断当前的衰减情况

根据用户等级设置参数:
再设置一个刹车空间阈值:
保留值:save_num
阈值:180
衰减数:2.35
传来count 之后记录当前的计数器数值count
count = n;
并记录count的时间record_time;
检查本次操作是否超频:
local_time - record_time = time_span // 上一次记录到当前的时间差
recover_num = time_span * 衰减数 // 计数器递减的值
real_count = count - recover_num // 当前计数器的真实值 计算得出 
如果save_count > 阈值 - real_count 就限制访问接口

KC限制方案

Rest

Rest当前的限频规则为2.0版本,关于spot交易根据不同的vip等级会有不同的token数量,但是使用的算法是time window算法。
就目前看来VIP12 在30s内可以拥有40000token

请求头中会返回如下信息:
1 最多限制"gw-ratelimit-limit":Max_Limit
2 剩余限制"gw-ratelimit-remaining":Remain_Limit
3 周期重置时间"gw-ratelimit-reset":Rest_Time

因此可以按照如下策略限频:

设置刹车数值:Save_Count
下单和查询订单:均需要消耗Token=1
下单之前检查最近一次的Remain_Limit - Save_Count >= 1
如果符合条件就去下单

Websocket下单

websocket目前文档中未给出下单的限制,但是当前对于上行消息有限制,100条/10s 认为是time window 算法。若是该种限制可以使用特殊的token bucket算法进行限制。
2025.6.12
目前核实到websocket依然采用的是rest的限频规则,在订单推送之后,限频的上下限和周期剩余时间会在最近一次的订单明细中推送,且不受到正常websocket上行100条/s的限制。

{"id":"request-001""op":"spot.order""code":"20000""data":{"orderId":"123456","clientOid":"5c52e11203"}"inTime":1695190491421,"outTime":1695190491444,"rateLimit":{"limit":1600,"reset":15244,"remaining":1528,}
}

MX限制方案

1Rest限频

Rest限频目前主要是根据:
1IP
2UID
两种模式分别进行统计,二者相互独立,分别共用500权重/10s。

10s作为一个周期
IPtoken池1:500 权重
UIDtoken池:500 权重
已知 资产读取1times/s 资产获取需要IP权重 10,
因此固定周期内IP token池为400权重
查询订单需要IP权重2 
下单 需要账号权重1和IP权重1

即理想情况下,单账户至多在10s内下400单。
从交易所核实到当前使用的是sliding Time window算法,目前多账户下无法处理限频问题,除非多账户统一管理。
最简单的方法就是多账户均分时间窗口内的权重,这样这样无需关心其他人的使用情况,不会造成超频的情况,但是可能大家的需求不同,有的人可能会浪费掉一些权重。

CB限制方案

首先Rest和Fix是完全独立的两个方案。Rest采用token bucket的限制模式,Fix则是time window的限制模式

Rest

CB的token bucket 有两个关键值:
burst和refresh_rate
burst即token_bucket的阈值 
当前token的计算公式为
min(burst,previous_token + time_span * refresh_rate)公共节点的burst=15 refresh_rate=10
私有节点的burst=30 refresh_rate=15

Fix

Fix采用的是time window的限频规则
当你的第一条请求为0.0005s 是 截至 1.0005s 这个窗口内只能发送100条请求,
当请求超过200的时候就会断开fix连接

相关文章:

  • Vue 数据代理机制对属性名的要求
  • 前端将多个PDF链接的内容拼接成一个后返回出一个链接进行打开
  • 脑机新手指南(九):高性能脑文本通信:手写方式实现(上)
  • JS之Dom模型和Bom模型
  • Java SE - 类和对象入门指南
  • SQL29 验证刷题效果,输出题目真实通过率
  • Future与CompletableFuture:异步编程对比
  • Linux 文件内容的查询与统计
  • 万字深度解析注意力机制全景:掌握Transformer核心驱动力​
  • 【基于阿里云上Ubantu系统部署配置docker】
  • Haclon例程1-<剃须刀片检测程序详解>
  • < 买了个麻烦 (二) 618 京东云--轻量服务器 > “可以为您申请全额退订呢。“ 工单记录:可以“全额退款“
  • EtherCAT转CANopen网关与伺服器在汇川组态软件上的配置步骤
  • 免下载苹果 IPA 文件重签名工具:快速更换应用名称和 BID的教程
  • Python的LibreOffice命令行详解:自动化文档处理的终极指南
  • AUTOSAR图解==>AUTOSAR_TR_ModelingShowCases
  • OC学习—Block初探(简易版)
  • ubuntu 安装 JDK8
  • SQL Server 查询数据库中所有表中所有字段的数据类型及长度
  • 笔试模拟day1
  • 分类信息网站建设方案/常州seo关键词排名
  • 网站建设项目分析/百度竞价排名服务
  • 针对人群不同,网站做细分/seo推广外包
  • 免费高清屏幕录像/武汉标兵seo
  • 阿里云最低服务器可以做几个网站/网站推广的技巧
  • 云图书馆平台网站建设方案/百度一下知道官网