后端基于微服务 - 概念

时间:2016-09-13 09:47:19

标签: ruby-on-rails video-streaming cloud distributed microservices

我计划基于微服务构建后端。以下图片介绍了我目前的想法:

enter image description here

两个重要特征是:

  • 上传大型文字和/或视频文件
  • 流视频 - 在网络应用和原生移动应用中显示用户

技术堆栈最终没有设定,但最初我想到了:

  • 网络应用 - ReactJs / Angular
  • 后端应用程序 - Ruby on Rails

我对目前的概念有疑问:

  1. API Gateway是否应该作为路由器工作,将用户的请求重定向到特定的微服务?或者......它应该是一个专用的应用程序(例如Ruby on Rails应用程序)和API吗?
  2. 如何进行授权?我应该为此使用单独的微服务吗?让我们说用户上传文件,他的请求应该转到第三个微服务:"大数据上传"。我应该何时何地授权他访问?在那个微服务或早期的API网关?或者也可以在"身份验证微服务"?
  3. 中进行身份验证
  4. 上传大文件 - 让我们说用户希望通过HTTP将大型文件(带有原始数据的视频或压缩文本文件)从移动应用程序传输到后端。他的请求转到API网关,然后重定向到"大数据上传"微服务。应用程序将文件保存到对象存储。是上传文件的正确途径吗?或者我可以制作一些快捷方式来缩短文件的路径?
  5. 视频流 - 当用户上传视频文件时,我想将其放入资产(对象存储 - 例如Amazon S3)。是否足以在网络应用或移动应用中向用户展示此视频? (除了代码转换器服务和CDN)
  6. 负载平衡 - 使用负载平衡来控制到微服务实例的流量(在API网关和绿色微服务之间的图片上)是否合理?或者它不是一个好的方法,因为我们可能丢失一些关于请求/接收者/用户的信息,甚至API网关会更加重要"瓶颈"?
  7. 在您看来,这种架构概念是否具有易于扩展的良好潜力?当然,省略了硬件和软件配置。
  8. 先谢谢您的帮助和提示!

0 个答案:

没有答案