高并发 - swoole+rabbitmq+redis构建高迸发网站
大家讲道理
大家讲道理 2017-04-22 08:59:34
0
1
901

最近耳濡目染的了解了swoole、rabbitmq,redis以前用这还算熟悉。公司是做O2O项目,我是后台组(PHP),负责为移动APP端提供数据接口,现在用户数呈指数增加,再有项目很快就无法承受高迸发访问,所以想重构。

初步的想法是:
用rabbitmq作service,处理一些耗时工作,比如:图片上传,邮件发送,日志等。
用redis作数据缓存。
swoole不知道怎么用,看了官方的一些介绍好像很适合处理高迸发项目,但是不知道怎么实用起来。

现有以下几点疑问:
1、rabbitmq怎么传递任务,比如用户上传图片,表单提交一个图片过来,怎么将这个任务加入到队列?消息应该怎么传?传送邮件如果失败了(邮件地址不正确)怎么通知前端应用?
2、三者如何组合,用什么作为接口入口?
3、或者有其他比较好的架构?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(1)
PHPzhong
  1. 이미지를 업로드하려면 먼저 양식을 통해 제출된 이미지를 받고 모든 정보를 데이터베이스에 저장한 다음 이미지 정보를 작업 대기열로 보내야 합니다.

예를 들어 양식은 name과 img라는 두 가지 이름을 전달한 다음 img에 대한 새 파일 이름을 생성하고 이미지를 저장하며 이름과 이미지 파일 이름을 데이터베이스에 저장하고 이미지 파일 이름을 메시지 대기열에 전달합니다. (이미지 경로 문제를 고려할 수 있습니다). 다음은 이러한 대기열을 처리하고 사진을 사진 서버로 전송하는 또 다른 작업입니다.
하지만! 메시지 대기열을 사용하여 이미지를 업로드하는 대신 전용 이미지 서버를 사용하여 직접 처리하는 것이 좋습니다. 이메일 발송 실패에 대해 이메일 서버의 응답을 기다리는 데 시간이 오래 걸리는 경우, 사이트 내 메시지 알림 등 다른 방법을 이용하실 수 있습니다.

2. 물론 스울도 조합해서 입구로 사용하게 됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿