最近耳濡目染的了解了swoole、rabbitmq,redis以前用这还算熟悉。公司是做O2O项目,我是后台组(PHP),负责为移动APP端提供数据接口,现在用户数呈指数增加,再有项目很快就无法承受高迸发访问,所以想重构。
初步的想法是:
用rabbitmq作service,处理一些耗时工作,比如:图片上传,邮件发送,日志等。
用redis作数据缓存。
swoole不知道怎么用,看了官方的一些介绍好像很适合处理高迸发项目,但是不知道怎么实用起来。
现有以下几点疑问:
1、rabbitmq怎么传递任务,比如用户上传图片,表单提交一个图片过来,怎么将这个任务加入到队列?消息应该怎么传?传送邮件如果失败了(邮件地址不正确)怎么通知前端应用?
2、三者如何组合,用什么作为接口入口?
3、或者有其他比较好的架构?
PHPz2017-04-22 09:01:34
예를 들어 양식은 name과 img라는 두 가지 이름을 전달한 다음 img에 대한 새 파일 이름을 생성하고 이미지를 저장하며 이름과 이미지 파일 이름을 데이터베이스에 저장하고 이미지 파일 이름을 메시지 대기열에 전달합니다. (이미지 경로 문제를 고려할 수 있습니다). 다음은 이러한 대기열을 처리하고 사진을 사진 서버로 전송하는 또 다른 작업입니다.
하지만! 메시지 대기열을 사용하여 이미지를 업로드하는 대신 전용 이미지 서버를 사용하여 직접 처리하는 것이 좋습니다. 이메일 발송 실패에 대해 이메일 서버의 응답을 기다리는 데 시간이 오래 걸리는 경우, 사이트 내 메시지 알림 등 다른 방법을 이용하실 수 있습니다.
2. 물론 스울도 조합해서 입구로 사용하게 됩니다.