HotKey基于618稳定版0.2引入protobuf序列化方式,优化传输对象。worker的单机性能从618大促稳定版的20万QPS稳定30万限制提升到30万稳定37万QPS限制。而且cpu峰值下降了15%。该中间件目前在京东内部10多个核心部门使用,服务于京东App服务器前台、中台、数据中台等多个核心业务线。系统架构京东APP后台热数据检测框架经过多次高压压力测试和2020年京东618推广测试。上线运营期间,每天检测数十亿键,精准抓取大量爬虫、刷机用户。此外,大量的热门商品被精确检测到并毫秒级推送到每台服务器的内存中,大大降低了热点数据的影响。数据层的查询压力提高了应用性能。框架经过多次压力测试,主要有两个性能指标:1.检测性能:8核单机每秒可接收处理16万个关键检测任务,16核单机可每秒至少处理30万次关键检测任务。压测37万,CPU支撑稳定,框架正常。2.推送性能:在高并发写的时候,目前对外推送的性能大概是10万到12万次推送/秒。例如,有1000台服务器,在一个worker上每秒生成100个热键。100*1000=100,000次推送将在1秒内顺利推送,100,000次推送将在1秒内交付。如果少写多推,如果按纯推送来算,框架每秒可以稳定推送40万到60万次,80万次的极限还能坚持几秒。3、在真实的业务场景中:可以采用1:1000的比例,即一个worker可以支撑1000台业务服务器的关键检测任务,可以带来数据存储资源的极大节省(如扩展redis集群)。引入任何无法提前感知的突发热点请求,包括但不限于热点数据(如同一产品突然大量请求)、热点用户(如爬虫、刷机)、热点接口(突发海量请求)同接口)等,实现毫秒级精准检测。然后将这些热点数据、热点用户等推送到应用部署的所有机器的JVM内存中。(关注微信♂米工哥技术之路,后台回复关键字Java全栈知识体系获取学习路线PDF)大大降低对后端数据存储层的影响,客户端可以决定如何使用这些热键(如热点产品的本地缓存,拒绝热点用户访问,热点接口的熔断或恢复默认值)。这些热键在整个应用程序集群中是一致的。核心功能:检测热点数据,推送到集群中的各个服务器。适用场景1、mysql热点数据本地缓存2、redis热点数据本地缓存3、黑名单用户本地缓存4、爬虫用户限流5、接口、用户维度限流6、单机接口、用户维度限流7,集群用户维度限流8.集群接口维度限流这个开源项目具有重大的战略意义。经历百万并发,参与京东开源中间件项目建设。它一直在等你。界面效果开源地址https://gitee.com/jd-platform...
