繁体   English   中英

如何使用微服务多个实例刷新请求令牌

[英]How to refresh request token with microservice multiple instances

场景:

当请求令牌到期并且来自不同服务实例的多个请求发生时,所有请求都通过远程HTTP调用同时请求新的请求令牌,而后一个请求令牌将使前一个请求令牌无效。 因为每个获取新令牌的请求都会使前一个无效。 生成请求令牌的服务是第三方的,我们无法更改它。

问题:

  1. 我们的应用程序架构基于微服务,每个服务将具有多个实例,如何在每个服务之间重用请求令牌?(也许将其存储在外部Redis中是一个选择)

  2. 在服务启动期间,我们如何确保只有一个刷新令牌请求发送到第三方服务?

  3. 之后,当请求令牌过期时,我们如何续签它?

技术栈:

  • Java 8
  • 春云
  • 雷迪斯
  • 牧场主
  • 的MySQL

以下是您可以考虑的选项

  1. 为令牌管理创建一个新的MicroService。 所有微服务都会通过此服务访问第三方身份验证组件

  2. 在令牌管理服务中,您创建一个Spring Singleton bean,该服务启动时将自动初始化(@Autowired)

  3. 在此bean内,您可以具有调用第三方API的逻辑

  4. 根据您的需求,您可以决定是否需要像Redis / memcache这样的缓存服务,或者是否需要RDBMS表

  5. 在此令牌管理服务中,当您从第三方API获得令牌过期响应时,便可以使用逻辑来更新令牌

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM