一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
Akali(阿卡丽)是一个轻量级本地化热点检测/降级框架,适用于大流量场景,可轻松解决业务中超高流量的并发查询等场景。并且接入和使用极其简单,10秒钟即可接入使用!
Akali框架的理念就是小巧,实用,来无影去无踪,丝血团战,满血退场,所到之处,皆为虚无。
使用Apache-2.0开源协议
自动根据QPS或者Thread数目来本地化检测热点
自动用热点数据进行返回,热点消失后可自动摘除
自动根据QPS或者Thread数目来检测是否降级
可根据方法名进行定义降级方法
整体框架不足500行代码,对系统消耗量极小
整体一共2个标注,标注上即可使用
所以,请确保你的接口符合在短时间窗口内是能保证幂等性的,如果你的接口返回的数据每时每刻都在发生变化,那么Akali并不适合。这点很重要。
对RPC框架的支持度
支持任何RPC框架,诸如dubbo,open feign的provider端的热点处理。你完全可以把@AkaliHot
标注在以上框架的provider端,标注在接口方法上或者实现类方法上均可以。
对于热点处理的一些忠告
尽量标注在一定时间范围内幂等的方法上,比如查询用户,查询订单等接口,这些接口方法在小范围时间窗口内是相对幂等的。
如果你标注在事务性操作的方法上,比如库存扣减,那么热点触发后,可能会造成业务的错乱。因为这些业务方法本来就不是幂等的。
所以使用之前要对业务进行考量,不能瞎用,这属于使用不当,而不是框架的责任。
来源:Akali(阿卡丽)官网文档
评论