京东热数据探测框架JD-hotkey:高性能、毫秒级推送

需积分: 0 0 下载量 66 浏览量 更新于2024-08-03 收藏 1.47MB PDF 举报
"JD-hotkey是京东开发的一款高效热数据探测框架,主要用于实时发现并推送互联网上的热数据,如热门商品、热用户和热接口,以缓解数据层查询压力,提升应用性能。" JD-hotkey框架设计的核心目标是在面对大规模、突发性的热点请求时,能够以毫秒级的速度进行精准探测,并将这些热数据迅速推送到各个服务端的内存中。通过这种方式,它可以有效减少对数据库或缓存系统(如MySQL和Redis)的压力,同时允许客户端根据热key采取相应的策略,如本地缓存、用户限制或接口熔断。 在性能方面,JD-hotkey表现出色。单机探测性能在8核CPU配置下,每秒可处理16万个key探测任务,16核配置下则超过30万,实际测试可达37万。推送性能同样强大,能在高并发写入的同时,保持每秒10-12万次的平稳推送,极端情况下甚至可以达到每秒80万次的推送极限。单机吞吐量(包含写入和推送)稳定在70万左右。这意味着它能有效地支持大规模分布式环境,例如1台worker可以支持1000台业务服务器的探测任务,极大地节省了数据存储资源。 框架的主要功能包括热数据探测和推送,适用于多种业务场景,如: 1. MySQL热数据本地缓存:将热数据缓存在应用内存中,减少对数据库的查询。 2. Redis热数据本地缓存:类似地,减轻Redis集群的压力。 3. 黑名单用户本地缓存:快速识别并限制爬虫或刷子用户的活动。 4. 爬虫用户限流:通过限制特定用户的请求频率,防止爬虫对系统造成冲击。 5. 接口、用户维度限流:控制不同接口或用户请求的速率,保障系统稳定性。 6. 单机接口、用户维度限流:在单台服务器上实施限流策略。 7. 集群用户维度限流:在整个应用集群范围内限制用户请求。 8. 集群接口维度限流:针对所有服务器的接口访问进行限流。 JD-hotkey是一款经过京东618大促实战检验的高性能工具,对于应对高并发、大数据量的互联网环境具有极高的价值,尤其适用于需要实时响应热点事件和保护系统稳定性的场景。其开源特性也使得其他企业和开发者能够借鉴和利用这一框架,提升自身系统的处理能力。