Ruby on rails 基于微服务的后端-概念

Ruby on rails 基于微服务的后端-概念,ruby-on-rails,video-streaming,cloud,distributed,microservices,Ruby On Rails,Video Streaming,Cloud,Distributed,Microservices,我计划构建一个基于微服务的后端。下图展示了我目前的想法: 两个重要特征是: 上载大文本和/或视频文件 流视频-在web应用程序和本机移动应用程序中显示用户 技术堆栈尚未最终设置,但我首先想到: web应用程序-ReactJs/Angular 后端应用程序-RubyonRails 我对我目前的概念有以下疑问: API网关是否应该作为路由器工作,将用户的请求重定向到特定的微服务?或它应该是一个带有API的专用应用程序(例如RubyonRails应用程序) 如何进行授权?我应该为此使用单独的

我计划构建一个基于微服务的后端。下图展示了我目前的想法:

两个重要特征是:

  • 上载大文本和/或视频文件
  • 流视频-在web应用程序和本机移动应用程序中显示用户
技术堆栈尚未最终设置,但我首先想到:

  • web应用程序-ReactJs/Angular
  • 后端应用程序-RubyonRails
我对我目前的概念有以下疑问:

  • API网关是否应该作为路由器工作,将用户的请求重定向到特定的微服务?或它应该是一个带有API的专用应用程序(例如RubyonRails应用程序)
  • 如何进行授权?我应该为此使用单独的微服务吗?假设用户上传文件,他的请求应该转到第三个微服务:“大数据上传”。我应该在何时何地授权他访问?在那个微服务中,还是在API网关中?或者认证也应该在“认证微服务”中完成
  • 上传大文件-假设用户希望通过HTTP将一个大文件(包含原始数据的视频或压缩文本文件)从移动应用程序传输到后端。他的请求进入API网关,然后被重定向到“大数据上传”微服务。应用程序将文件保存到对象存储器中。上传文件的路径是否正确?或者我可以做一些快捷方式来缩短文件的路径
  • 视频流-当用户上传视频文件时,我想将其放入资产(对象存储-例如AmazonS3)。在web应用程序或移动应用程序中向用户演示此视频是否足够?(转码器服务和CDN旁边)
  • 负载平衡-使用负载平衡来控制微服务实例的流是否合理(在API网关和绿色微服务之间的图片上)?或者这不是一个好方法,因为我们可能会丢失一些关于请求/接收者/用户的信息,甚至API网关会成为更重要的“瓶颈”
  • 在您看来,这种架构概念是否具有易于扩展的良好潜力?当然,省略了硬件和软件配置

  • 离题。可能更适合程序员设置这对程序员来说有点宽泛,@Filip.Yeah,你说得对@RobertHarvey