接口频率控制类需要什么?

小小的PHP能干啥
  • 176

自己的接口想限制下访问频率,找了找开源,貌似只有一个在更新维护的,但是有框架要求,不想引入太多不相干的代码,所以来问问,接口频率限制都需要有些什么东西?

找到的频率控制类开源项目,虽然不用,但是毕竟是相关的可以参考。
https://github.com/GrahamCamp...

PS:另外为什么php没有多少原生的单一功能类的开源项目,都是依赖框架进行的功能类进行开发?

回复
阅读 525
3 个回答

需要啥?一个能存储流量数据的地方就可以,用 Redis 还是啥的都行,剩下的就是代码层面上的了,看你怎么设计呗。


你最后的问题要怪就怪在 PHP 本身生态下没有一个通用的 Web 框架吧。

还拿你这个频率控制为例,你总不能在每个 Action 开头都去写一段代码吧?那样侵入性也太大了。所以势必要有个东西能降低侵入性,至于这个东西是叫中间件(Middleware)、过滤器(Filter)、拦截器(Interceptor)还是管道(Pipeline)那都无所谓,反正是得有这么个东西。

但遗憾的是,PHP 既不像 C# 那样有官方提供的解决方案(即 ASP.NET),也不像 Java 那样有生态下的事实标准框架(即 Spring),各个 Web 框架都是自己有自己的设计思路和开发模式。

这种情况下,要么你选择配合框架去实现、开发者集成方便但就无法做到泛用性;要么你选择剥离框架去实现、但势必就要重复地造很多“轮子”(比如你提的这个库,它就利用了 Laravel 本身提供的 Cache 系统实现;你要剥离开 Laravel 的话,Cache 是不是得你自己重新实现一遍?)、等到实际使用时与这些框架集成起来的时候就会复杂。

这玩意专门的名词叫做限流,限流熔断降级 这三个一般是一起的,你可以都看一看,php这类第三方包的话,可以往这方面查

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏