如何有效应对注册高峰期并发挑战,显著提升每秒查询数(QPS)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2758个文字,预计阅读时间需要12分钟。
前言:本地在Windows系统下,使用Apache的ab工具进行600并发测试。查询指定手机是否存在的注册功能,会出现重复提交的情况,且在注册完成后还需对请求人进行奖励,记录。
前言:前面在本地的windows通过apache的ab工具测试了600并发下“查询指定手机是否存在再提交数据”的注册功能会出现重复提交的情况,并且在注册完成时还需要对邀请人进行奖励,记录邀请记录,对该新用户自动发布动态信息,发短信或发邮件等其他业务功能。所以这里当并发时,注册功能就变得低效且容易出现问题。
方法:先对重复提交的问题通过redis解决,再把注册储存用户基本信息以后的操作放到队列中进行异步执行,可以很好的优化注册功能,提高QPS。
一、环境要求
- PHP版本 >= 5.6.0
- PHP框架:Thinkphp5.1.*
- 消息队列:Think-queue2.0
- PHP扩展:Redis
二、下载框架和消息队列中间件
1. 下载tp5.1。
composer create-project topthink/think=5.1.* tp5 --prefer-dist
2. 安装think-queue。
composer require topthink/think-queue
3. php安装redis扩展和打开redis服务端和客户端。
三、解决注册重复提交
1. 配置文件中cache设置为redis驱动,并新建控制器因为cache相关命名空间。
本文共计2758个文字,预计阅读时间需要12分钟。
前言:本地在Windows系统下,使用Apache的ab工具进行600并发测试。查询指定手机是否存在的注册功能,会出现重复提交的情况,且在注册完成后还需对请求人进行奖励,记录。
前言:前面在本地的windows通过apache的ab工具测试了600并发下“查询指定手机是否存在再提交数据”的注册功能会出现重复提交的情况,并且在注册完成时还需要对邀请人进行奖励,记录邀请记录,对该新用户自动发布动态信息,发短信或发邮件等其他业务功能。所以这里当并发时,注册功能就变得低效且容易出现问题。
方法:先对重复提交的问题通过redis解决,再把注册储存用户基本信息以后的操作放到队列中进行异步执行,可以很好的优化注册功能,提高QPS。
一、环境要求
- PHP版本 >= 5.6.0
- PHP框架:Thinkphp5.1.*
- 消息队列:Think-queue2.0
- PHP扩展:Redis
二、下载框架和消息队列中间件
1. 下载tp5.1。
composer create-project topthink/think=5.1.* tp5 --prefer-dist
2. 安装think-queue。
composer require topthink/think-queue
3. php安装redis扩展和打开redis服务端和客户端。
三、解决注册重复提交
1. 配置文件中cache设置为redis驱动,并新建控制器因为cache相关命名空间。

