进行服务器到服务器调用的最快方法是啥?

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 服务器上拥有数百万用户时,存储和获取图像的最快和最有效的方法是啥?

在本地安装和设置 TYPO3 的最快方法是啥?

计算用户平均速度的最快方法是啥?

我可以放在服务器上并从多台计算机访问的最快数据库是啥?

ESP32-CAM 使用 socketIO 将视频输出流式传输到 nodejs 服务器的最快方法

Matlab中加载数据最快的方法是啥