进行服务器到服务器调用的最快方法是啥?
Posted
技术标签:
【中文标题】进行服务器到服务器调用的最快方法是啥?【英文标题】:what is the fastest way to do server to server calls?进行服务器到服务器调用的最快方法是什么? 【发布时间】:2016-08-17 05:27:16 【问题描述】:我在我的应用程序中实现了 Oauth2 以保护 API 调用。 我的 Oauth 和资源服务器位于两个单独的物理机上(但在同一网络上)。对于资源服务器上的每次调用,它都需要调用 Oauth 服务器进行 Oauthtoken 验证。
一天内我的资源服务器收到了数百万个请求。 目前为了验证 Oauth 令牌,我正在使用从资源服务器到 Oauth 服务器的 rest 调用。
由于每个呼叫都需要重定向到 Oauth 服务器,因此有没有一种方法可以加快速度? webSockets能解决这个问题吗?
【问题讨论】:
不是专家,但tools.ietf.org/html/rfc6749 中的图 2 没有显示资源服务器和授权服务器之间的任何通信。我认为资源服务器应该能够验证访问令牌而无需额外的通信。 【参考方案1】:如果您不需要撤销单个访问令牌,您可以使用无状态(JSON Web 令牌)JWT 令牌。 JWT 不需要在授权服务器上进行验证。只要 JWT 令牌由授权服务器签名(非对称加密),您就可以使用授权服务器的公钥在资源服务器本身上验证令牌。
这以易于撤销为代价实现了快速授权(因为它跳过了服务器到服务器的往返)。
注意:您也可以使用共享密钥(对称加密),但您需要确保所有相关方都拥有共享密钥(并保密)。
查看 spring-security-jwt 和 https://jwt.io/
【讨论】:
以上是关于进行服务器到服务器调用的最快方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
当您在 LAMP 服务器上拥有数百万用户时,存储和获取图像的最快和最有效的方法是啥?