热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vine分布式限流器的简介

本项目采用Jar方式接入,可简单快速实现接口的限流能力(内置支持了SpringMVC网关

本项目采用Jar方式接入,可简单快速实现接口的限流能力(内置支持了SpringMVC网关和Dubbo微服务,可自定义拓展)。


该项目考虑到限流场景的高压力,采用了批量预取、单机锁、蓄池缓冲、Lua合并指令集等一系列优化策略,尽可能最大程度提升性能表现。可满足大多数业务场景。


内部实现了令牌桶算法
,适用范围更广。下层依赖redis(2.6版本以上)的lua脚本能力实现分布式限流。


该项目底层使用spring管理,针对于redis调用封装以及限流配置获取进行模块抽象,支持自定义实现。并默认实现集团全家桶redis封装,以及hippo配置中心。


详细文档参见:

http://wiki.fenqile.com/pages/viewpage.action?pageId=36553290


典型场景


  • 商城系统中,秒杀活动的接口调用频次限制


  • 开放平台中,针对某个合作商的接口访问频度控制


使用方法


  • Dubbo微服务限流的接入手册:http://wiki.fenqile.com/pages/viewpage.action?pageId=41424080


  • SpringMVC网关限流的接入手册:http://wiki.fenqile.com/pages/viewpage.action?pageId=36559401


技术指标


  • 接口压测QPS:3797.05 (测试机器CPU均达到100%,仍有上升空间)


  • 令牌发放准确性:99%(感谢zackhu协助验证)


Roadmap


  • 【新特性】支持查看限流实时统计效果


  • 【新特性】支持根据接口压力反馈动态设置阀值


使用案例


  • 桔子理财购买标的接口防护,防止抢标压力过大(理财产品部-研发中心,winsonhuang)


PS: 请使用该组件的同学联系antonybi,可以获得更好的技术支持,并出现在使用案例中




【Vine的含义】


中文含义是藤蔓。由乐卡会员产品部研发中心团队出品并维护的一系列常用组件的代号。寓意,各种组件都是支持系统的各个枝干,越来越多的组件会交织起来,会有更稳固的支撑。同时,藤蔓的延生感体现出生命活力,也代表组件的不断完善和发展。



项目负责人:qiaoliu(刘巧)

项目Git仓库地址:http://gitlab.fenqile.com/lexin_public_group/vine_rate_limiter



end





推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
author-avatar
晒太阳的人2015
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有