最近耳濡目染的了解了swoole、rabbitmq,redis以前用这还算熟悉。公司是做O2O项目,我是后台组(PHP),负责为移动APP端提供数据接口,现在用户数呈指数增加,再有项目很快就无法承受高迸发访问,所以想重构。
初步的想法是:
用rabbitmq作service,处理一些耗时工作,比如:图片上传,邮件发送,日志等。
用redis作数据缓存。
swoole不知道怎么用,看了官方的一些介绍好像很适合处理高迸发项目,但是不知道怎么实用起来。
现有以下几点疑问:
1、rabbitmq怎么传递任务,比如用户上传图片,表单提交一个图片过来,怎么将这个任务加入到队列?消息应该怎么传?传送邮件如果失败了(邮件地址不正确)怎么通知前端应用?
2、三者如何组合,用什么作为接口入口?
3、或者有其他比较好的架构?
Sebagai contoh, borang itu melepasi dua nama: nama dan img, kemudian jana nama fail baharu untuk img dan simpan imej, simpan nama dan nama fail imej ke dalam pangkalan data dan hantar nama fail imej ke baris gilir mesej (anda boleh mempertimbangkan masalah laluan imej). Perkara berikut ialah tugas lain untuk memproses baris gilir ini dan memindahkan gambar ke pelayan gambar.
tetapi! Daripada menggunakan baris gilir mesej untuk memuat naik imej, lebih baik menggunakan pelayan imej khusus untuk mengendalikannya secara langsung. Bagi kegagalan menghantar e-mel, jika mengambil masa yang lama untuk menunggu pelayan e-mel membalas, anda boleh menggunakan kaedah lain seperti pemberitahuan mesej dalam tapak.
2. Sudah tentu, swole akan digunakan sebagai pintu masuk secara gabungan.