提问者:小点点

如何将 django 网站分解为微服务


所以,我是“单体与微服务”架构辩论的新手,我已经大致了解了其中的大部分内容。根据我有限的理解,我了解到在微服务架构中,每个功能(比如说)都是一个单独的应用程序。现在我需要对 django 实现微服务进行一些澄清。这是我的问题

我应该让每个微服务(即应用程序)完全成为不同的 django 项目,还是应该使每个应用程序(又名微服务)在一个 django 项目中保持隔离(如松散耦合)?


共3个答案

匿名用户

微服务架构只是简单地声明您的每个服务应该彼此独立。

也没有必要在java中创建一个微服务,在python中创建一个微服务,因为它们是不相关的。

所以是的,理想情况下,你的每个微服务都是一个单独的 django 项目。分解此问题的最佳方法,首先列出您的网站或应用程序中的所有可能模块。

然后通过:https://microservices.io/patterns/decomposition/decompose-by-business-capability.html https://microservices.io/patterns/decomposition/decompose-by-subdomain.html

这是您应该如何将模块/域划分为微服务的两种推荐模式。

匿名用户

好吧,您可以在 Django 中使用数据库路由器...这确实可以解决问题...每个应用程序一个wSGI文件与您的NGINX服务器通信

匿名用户

微服务的主要目的是为特定的业务服务,例如你正在运行一个云厨房,那么Django项目可以在一个主项目下有许多子项目,或者你可以将每个项目作为单独的服务运行,这取决于你。

服务

  1. 后台
  2. 金融
  3. 骑手
  4. 厨房

现在我们将为每个服务设置 URL,例如

endpoint

  1. backoffice.mycompany.com
  2. finance.mycompany.com
  3. rider.mycompany.com
  4. kitchen.mycompany.com

一旦我们的应用程序启动,服务负载将不会影响其他服务。