使用PHP在高并发时,如何做接口限流服务

Posted PHP自学中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PHP在高并发时,如何做接口限流服务相关的知识,希望对你有一定的参考价值。


文章来自:php自学中心

点击加入:









技术交流微信群

  
    
    
  
我们在学习中单枪匹马,还不如一次短短的交流,你可以在别人吸取各种学
习经验,学习方法以及学习技巧,所以,学习与交流少不了一个圈子,提升
你的学习技能,请点击加技术群:      

记得备注你会的一种PHP框架


视频教程分享

   
     
     
   
     
       
       
     

更多视频教程请查看码农网IT技术教程

1 2020年redis面试全套视频教程

链接:http://www.mano100.cn/thread-1588-1-1.html

2 2020年最新版Docker 教学视频

链接:http://www.mano100.cn/thread-1587-1-1.html

3 2020-Python入门视频全套全开源(最新版)

链接:http://www.mano100.cn/thread-1632-1-1.html

4 2020 mysql数据库零基础到精通教程

链接:http://www.mano100.cn/thread-1637-1-1.html

链接:http://www.mano100.cn/thread-1633-1-1.html


  
    
    
  
  
    
    
  


精选文章正文

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。

缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;


而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;


而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、因此需有一种手段来限制这些场景的并发/请求量,即限流。


限流的目的

限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。


常见的限流

1 一般开发高并发系统常见的限流有:

2 限制总并发数(比如数据库连接池、线程池)

3 限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)

4 限制时间窗口内的平均速率(如Guava的RateLimiter、nginx的limit_req模块,限制每秒的平均速率);

5 其他还有如限制远程接口调用速率、限制MQ的消费速率。

6 另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。


网上很多限流服务的例子大都是java的,这里给大家分享几节【用php与swoole,redis如何做高并发接口限流服务】的课程,做做笔记,学习一下!


目录如下:

PHP-swoole+redis实现接口限流01

PHP-swoole+redis实现接口限流02

PHP-swoole+redis实现接口限流03

PHP-swoole+redis实现接口限流04

PHP-swoole+redis实现接口限流05

PHP-swoole+redis实现接口限流06

PHP-swoole+redis实现接口限流07

PHP-swoole+redis实现接口限流08



详情可查看

链接:http://www.mano100.cn/thread-1639-1-1.html


获取教程



以上是本文的全部内容,希望对大家的学习有帮助,也希望大家多多支持 php自学中心 ,学习与交流少不了一个圈子,点击加技术群:

以上是关于使用PHP在高并发时,如何做接口限流服务的主要内容,如果未能解决你的问题,请参考以下文章

PHP对API接口做限流

秒杀系统如何优雅稳定地处理大量请求?

秒杀系统之「令牌桶限流」 和「超卖」

分布式高并发服务限流实现方案

高并发限流算法

除了负载均衡,Nginx还可以做限流缓存黑白名单……