Rabbitmq 消息队列-体系结构(任务和响应)

Rabbitmq 消息队列-体系结构(任务和响应),rabbitmq,activemq,message-queue,application-design,web-application-design,Rabbitmq,Activemq,Message Queue,Application Design,Web Application Design,我现在正在考虑将消息队列用于“视频”项目 想象一个视频服务,用户上传视频,然后通过脚本制作屏幕截图、短视频缩略图和不同大小的视频(此时如何制作并不重要)。无论如何,更重要的是要考虑前端(web上载服务器)和后端服务器(视频处理服务器)之间的通信 因此,过程可能是: 用户访问该站点 用户上传新视频 上传脚本将新消息添加到消息队列(嘿,有新视频,处理它) 在此状态下,用户可以在“已上载”状态的视频列表上查看视频 这是我实际上不知道怎么做的部分 使用者从消息队列中获取消息并开始处理它 消费者检测到它是

我现在正在考虑将消息队列用于“视频”项目

想象一个视频服务,用户上传视频,然后通过脚本制作屏幕截图、短视频缩略图和不同大小的视频(此时如何制作并不重要)。无论如何,更重要的是要考虑前端(web上载服务器)和后端服务器(视频处理服务器)之间的通信

因此,过程可能是:

  • 用户访问该站点
  • 用户上传新视频
  • 上传脚本将新消息添加到消息队列(嘿,有新视频,处理它)
  • 在此状态下,用户可以在“已上载”状态的视频列表上查看视频
  • 这是我实际上不知道怎么做的部分

  • 使用者从消息队列中获取消息并开始处理它
  • 消费者检测到它是视频-如果现在它将失败
  • 消费者制作屏幕截图(需要很长时间),消费者会通知web屏幕截图已经制作好(??如何制作?-我要将新消息放入消息队列吗?)
  • 消费者调整视频大小(需要很长时间)-同样的问题-消费者应该如何告知网站,视频大小调整已经完成

  • 因此,问题是如何处理来自后端服务器的消息。我猜消费者将把另一条消息放到某个日志队列中,而其他web消费者将处理它们并更新数据库。是吗?

    只需创建两个队列:一个用于作业,另一个用于响应

    过程:

    • 用户->工作队列->工作者
    • 工作者->消息队列->用户
    第二个的使用者可以是任何东西——一个将结果写入数据库的进程,或者——例如——一个立即发送通知的WebSocket服务器