这可能是一个关于微服务的基本问题。我搜索了几篇文章,但找不到任何合适的文章。我正在开发两个不同的django rest应用程序(比如A和B),它们必须使用相同的身份验证服务。我已经使用django-rest-framework-simplejwt构建了身份验证服务。我当前的计划是,当一个令牌被发送到A时,我使用来自身份验证服务的TokenVerifyView来验证令牌。在某些需要用户信息的情况下,我在身份验证服务中创建了一个视图来返回用户名。我打算通过使用装饰器向A中的每个视图的身份验证服务发送一个请求来实现这一点。我知道这会很慢,而且是一个次优的解决方案。实现这一目标的更好方法是什么?谢谢。
发布于 2018-12-19 02:24:37
这似乎在很大程度上是正确的,但我不确定您是否希望在对A或B的每个API请求期间调用身份验证服务的API进行授权。为了获得更高的吞吐量,我认为您应该考虑像ZeroMQ这样的消息队列,这在这里可能是一个理想的解决方案。
您还可以使用django-channel在这里使用web套接字实现web应用程序之间的通信。在这两种解决方案中,这会更容易实现。
对于基本系统,每次调用任何一个微服务都要联系授权服务,但最终会遇到可伸缩性问题,此时您可能需要想出一种方法来联系授权服务一次。我觉得,这超出了这个问题的范围,但如果你想了解更多,你可以看看this stackoverflow答案。
https://stackoverflow.com/questions/53838242
复制相似问题