nic*_*icq
5
cloud
distributed
ruby-on-rails
video-streaming
microservices
我计划基于微服务构建后端。下图展示了我当前的想法:

两个重要功能是:
- 上载大型文字和/或视频文件
- 流视频-在Web应用程序和本机移动应用程序中显示用户
最终没有确定技术栈,但最初我想到的是:
- 网路应用程式-ReactJs / Angular
- 后端应用程序-Ruby on Rails
我对当前的概念有以下疑问:
- API Gateway是否应该充当路由器,将用户的请求重定向到特定的微服务?或者...应该是带有API的专用应用程序(例如Ruby on Rails应用程序)吗?
- 如何进行授权?我应该为此使用单独的微服务吗?假设用户上传文件,而他的请求应该转到第三个微服务:“大数据上传”。我应该在何时何地授权他访问?在那个微服务或更早的API Gateway中?还是应该在“身份验证微服务”中进行身份验证?
- 上传大文件-假设用户想通过HTTP将大型文件(带有原始数据的视频或压缩文本文件)从移动应用程序传输到后端。他的请求转到API网关,然后将其重定向到“大数据上传”微服务。应用程序将文件保存到对象存储。是上传文件的正确路径吗?或者我可以做一些捷径来缩短文件的路径?
- 视频流-用户上传视频文件时,我想将其放入资产(对象存储-例如Amazon S3)。将此视频呈现给Web应用程序或移动应用程序中的用户是否足够?(除了代码转换器服务和CDN之外)
- 负载平衡-使用负载平衡来控制流向微服务实例的流量(在API网关和绿色微服务之间的图片上)是否合理?还是这不是一个好方法,因为我们可能会丢失一些有关请求/收件人/用户的信息,甚至API网关都会成为更严重的“瓶颈”?
- 您认为这种架构概念是否具有易于扩展的良好潜力?当然,省略了硬件和软件配置。