两个django应用程序之间的双向通信

两个django应用程序之间的双向通信,django,django-rest-framework,microservices,Django,Django Rest Framework,Microservices,这可能是有关微服务的一个基本问题。我搜索了一些文章,但没有找到合适的。我正在开发两个不同的django rest应用程序(比如a和B),它们必须使用相同的身份验证服务。我已经使用django rest框架simplejwt构建了身份验证服务。我当前的计划是,当令牌被发送到时,我使用来自身份验证服务的TokenVerifyView来验证令牌。在某些需要用户信息的情况下,我在身份验证服务中创建了一个视图以返回用户名。我打算通过使用decorator向中的每个视图的身份验证服务发送请求来实现这一点。我

这可能是有关微服务的一个基本问题。我搜索了一些文章,但没有找到合适的。我正在开发两个不同的django rest应用程序(比如a和B),它们必须使用相同的身份验证服务。我已经使用django rest框架simplejwt构建了身份验证服务。我当前的计划是,当令牌被发送到时,我使用来自身份验证服务的TokenVerifyView来验证令牌。在某些需要用户信息的情况下,我在身份验证服务中创建了一个视图以返回用户名。我打算通过使用decorator向中的每个视图的身份验证服务发送请求来实现这一点。我知道这将是非常缓慢的,是一个次优的解决方案。实现这一目标的更好方法是什么?谢谢。

这在大多数情况下似乎是正确的,但我不确定您是否希望在向A或B发出每个API请求的过程中调用身份验证服务的API进行授权。为了获得更高的吞吐量,我认为您应该查看这样的消息队列,这可能是一个理想的解决方案

您还可以使用django频道来启用使用web套接字的web应用程序之间的通信。在两种解决方案中,这将更容易实现


对于一个基本系统,每次调用任何一个微服务都要联系授权服务,但最终会遇到可伸缩性问题,这时您可能需要想出一种方法来联系授权服务一次。我觉得这超出了这个问题的范围,但如果您想了解更多有关这方面的信息,可以查看stackoverflow答案。

这三个应用程序是否有不同的数据库?另外,您的意思是
TokenVerifyView
在您导入到应用程序A的身份验证应用程序中吗?是的,所有三个应用程序都有不同的数据库。jwt应用程序提供的TokenVerifyView位于身份验证项目中。我没有导入项目,因为所有项目都在不同的服务器上,我计划调用身份验证项目的URL以获取a中的JSON响应,解析它并在a中发送响应。感谢您的时间。我将阅读您提到的所有内容并尝试实施。