【问题标题】:Design independent auth service with authorization for scale设计具有规模授权的独立身份验证服务
【发布时间】:2021-08-28 23:23:11
【问题描述】:

我是系统设计和学习基本系统设计概念的新手,但最近一位面试官问了我一个问题。

“设计具有规模授权的独立身份验证服务。假设它将用于100万用户并发。”

那么,有人将如何扩展/构建一个同时为 100 万用户处理授权和身份验证的微服务?

如果以系统设计初学者(如我)可以理解的方式举例说明,那就太好了。

谢谢。

注意:我知道如何编写微服务架构,但不明白如何设计可同时扩展到 100 万用户的微服务架构。

【问题讨论】:

    标签: microservices system-design


    【解决方案1】:

    这取决于系统设计/架构和使用的组件/软件层。基于用例场景/架构,可以部署通过添加实例的水平扩展或通过添加 RAM 等的垂直扩展。一般来说,对于需要大/高流量的系统,应该优先考虑水平扩展。

    执行一些分析/性能测试,通过收集相关数据/症状从现有系统中进行分析来决定方法。根据结果​​结果确定当前系统每秒可以处理的最大请求数,根据它,您可能需要增加系统/服务器的 CPU 内核数以处理如此多的并发请求。

    根据您的系统架构,其中一种方法可以考虑在系统的入口点设置负载均衡器,以循环方式将请求发送到其他服务器/微服务或特定于应用程序的相应池服务器/特定位置的服务器。通过这种方式,它可以减轻系统压力并有助于扩展应用程序响应时间。

    您可以转向基于集群的架构来处理许多并发会话,在这种架构中,您可以拥有一个协调器,这将有助于根据流量的突发或资源的使用情况为微服务配置的副本动态扩展或缩减。

    典型的解决方案可以基于基于 API 网关的部署,因为它通过处理从外部实体/调用者到微服务的身份验证和授权来带来安全性。在这里,对于外部请求,API 网关会做负载均衡,隐藏微服务,负责授权,然后对请求进行身份验证和路由到相应的微服务。

    要获得近乎完美的设计,您可能需要使用所选方法对软件和硬件组件进行性能测试/负载测试/分析,并检查是否满足各种系统要求/性能指标并做出相应决定。

    p>

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多