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

时间:2018-12-18 17:30:06

标签: django django-rest-framework microservices

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

1 个答案:

答案 0 :(得分:1)

在大多数情况下,这似乎是正确的,但是我不确定是否要在对A或B的每个API请求期间调用身份验证服务的API进行授权。对于更高的吞吐量,我认为您应该看一下在ZeroMQ之类的消息队列中,这可能是此处的理想解决方案。

您还可以使用django-channels在此处使用Web套接字启用Web应用程序之间的通信。在这两种解决方案中,这将更易于实现。

对于基本系统,每次对任一微服务的调用都可以与授权服务联系,但是最终您会遇到可伸缩性问题,这时您可能需要提出一种与授权服务联系的方式。我认为这超出了此问题的范围,但是如果您想了解更多有关此内容的信息,可以查看this stackoverflow答案。