Architecture Api网关责任:良好实践(授权、请求转换)
我正在考虑在我的微服务之上使用api网关。但有一些架构问题我没有明确的答案,所以我想从社区得到一个意见。如果你能分享你对好的和坏的做法的想法,那也太好了。因此,为了使这篇提问文章易于阅读,我有两个主要部分“问题”和“细节” 问题 Api网关是否应负责授权和请求转换? 问题主要是什么是网关:它只是api用户和微服务之间的桥梁吗。还是微服务的版主?有关更多信息,请参阅“网关实施策略”一节 在使用AmazonAPI网关的情况下,使用附加的lambda函数层对请求进行转换和授权是否是一种良好的做法? 如果我选择使用AmazonAPI网关,对前面问题的回答将是“网关应该充当微服务的调节者”。然后我需要通过Amazon lambdas处理请求/响应转换和授权,这意味着我将在网关下面有另一层。所以问题是:拥有这种架构是一种好的实践吗 细节 技术Architecture Api网关责任:良好实践(授权、请求转换),architecture,aws-api-gateway,api-gateway,spring-cloud-gateway,Architecture,Aws Api Gateway,Api Gateway,Spring Cloud Gateway,我正在考虑在我的微服务之上使用api网关。但有一些架构问题我没有明确的答案,所以我想从社区得到一个意见。如果你能分享你对好的和坏的做法的想法,那也太好了。因此,为了使这篇提问文章易于阅读,我有两个主要部分“问题”和“细节” 问题 Api网关是否应负责授权和请求转换? 问题主要是什么是网关:它只是api用户和微服务之间的桥梁吗。还是微服务的版主?有关更多信息,请参阅“网关实施策略”一节 在使用AmazonAPI网关的情况下,使用附加的lambda函数层对请求进行转换和授权是否是一种良好的做法? 如
- 弹簧靴2.0
- JWT
- Spring云网关或亚马逊Api网关(取决于答案)
- 网关逻辑非常简单
- 作为网关,有各种各样的框架和工具可供选择
- ServiceA和AuthService是强耦合的
- 如果我需要添加ServiceB,那么我需要做一些双重工作来建立ServiceB和ServiceA之间的通信
- AuthService中的故障处理主要由ServiceA完成
- ServiceA与AuthService完全解耦
- 添加另一个ServiceB会容易得多
- AuthService的故障将由网关处理
- 网关将承担更多的责任,而不仅仅是作为微服务的桥梁
- Amazon Api网关很可能不是一个好的选择,因为使用Amazon lambda-s处理授权和转换可能会非常痛苦(也许我错了)
- 令牌具有有效的承载前缀:“承载”
- 令牌未过期(令牌具有createdAt属性,用于确定令牌是否早于10分钟)
- 用户存在:创建令牌后未删除用户(令牌具有subject属性,该属性保留用户的唯一标识符)
- 用户密码在令牌生存期内未更改