我刚开始学习系统设计&学习基本的系统设计概念,但最近一位面试官问了我一个问题。
设计具有规模授权的独立的auth服务。假设它将用于100万用户并发。
那么,如何为100万用户同时进行微服务处理授权和身份验证呢?
如果用一个初学者(像我一样)能够理解的方式来解释这个例子,那就太好了。
谢谢。
注意:我知道如何编写微服务体系结构,但未能理解如何设计一个可同时扩展到100万用户的微服务体系结构。
发布于 2021-07-07 21:20:49
这取决于系统的设计/体系结构以及所使用的组件/软件层。基于用例场景/体系结构,通过添加实例进行水平缩放或通过添加RAM进行垂直缩放等等。可以被部署。一般情况下,对于需要大流量/高流量的系统,最好采用水平缩放。
通过收集相关数据/症状,从现有系统中收集相关数据/症状,执行很少的分析/性能测试来决定方法。根据结果结果确定当前系统每秒可以处理的最大请求,根据结果,您可能需要增加系统/服务器的CPU内核数量,以处理这样数量的并发请求。
基于您的系统架构,其中一种方法可以考虑在系统入口点有一个负载均衡器,它将以循环方式将请求分派给其他服务器/微服务,或者将请求发送到各自的应用程序特定服务器池/特定位置服务器。通过这种方式,它减少了系统的压力,并有助于扩展应用程序的响应时间。
您可以使用基于集群的体系结构来处理许多并发会话,其中您可以有一个协调器,它将帮助为基于流量突发或资源利用的微服务配置的副本的动态缩放或下降。
典型的解决方案可以基于基于API网关的部署,因为它通过处理外部实体/呼叫者到微服务的身份验证和授权来带来安全性。在这里,对于外部请求,API网关将完成负载平衡、隐藏微服务、处理授权并随后执行请求的身份验证和路由到相应的微服务。
为了进行近乎完美的设计,您可能需要使用所选的方法对您的软件和硬件组件进行性能测试/负载测试/分析,并检查各种系统需求/性能指标是否满足并作出相应的决定。
https://stackoverflow.com/questions/67946781
复制相似问题