recherche

Maison  >  Questions et réponses  >  le corps du texte

高并发 - swoole+rabbitmq+redis构建高迸发网站

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

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

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

大家讲道理大家讲道理2798 Il y a quelques jours884

répondre à tous(1)je répondrai

  • PHPz

    PHPz2017-04-22 09:01:34

    1. Pour télécharger des images, vous devez d'abord recevoir les images soumises par le formulaire, stocker toutes les informations dans la base de données, puis envoyer les informations sur l'image à la file d'attente des tâches.

    Par exemple, le formulaire transmet deux noms : name et img, puis génère un nouveau nom de fichier pour img et enregistre l'image, stocke le nom et le nom du fichier image dans la base de données et transmet le nom du fichier image à la file d'attente des messages. (vous pouvez considérer le problème du chemin de l'image). Ce qui suit est une autre tâche pour traiter ces files d'attente et transférer les images vers le serveur d'images.
    mais! Au lieu d'utiliser une file d'attente de messages pour télécharger des images, il est préférable d'utiliser un serveur d'images dédié pour les gérer directement. En ce qui concerne l'échec de l'envoi de l'e-mail, s'il faut beaucoup de temps pour attendre la réponse du serveur de messagerie, vous pouvez utiliser d'autres méthodes telles que la notification par message sur site.

    2. Bien sûr, swoole sera utilisé comme entrée en combinaison.

    répondre
    0
  • Annulerrépondre