【问题标题】:How to break a django website into microservices如何将 django 网站分解为微服务
【发布时间】:2019-10-28 08:06:34
【问题描述】:

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

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

【问题讨论】:

    标签: django design-patterns architecture django-rest-framework microservices


    【解决方案1】:

    好吧,您可以在 django 中使用数据库路由器...这样就可以了...每个应用程序一个 wSGI 文件与您的 NGINX 服务器通信

    【讨论】:

      【解决方案2】:

      微服务应该是完全独立的,所以它不应该属于一个 Django 项目。您应该能够使用自己的数据库独立部署每个服务,因此即使您将项目拆分为单独的应用程序,它们仍然共享一个物理数据库,您不能单独部署它们。因此,您可以为每个“微服务”创建单独的 Django 项目,但这没有多大意义。您为创建微服务付出了很多开销,并且使用 Django 框架不是 MSA 的最佳选择,请查看Flask

      【讨论】:

        【解决方案3】:

        微服务架构只是说明你的每个服务应该相互独立。

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

        所以是的,理想情况下,您的每个微服务都是一个单独的 django 项目。 打破这一点的最佳方法是,首先列出您网站或应用中所有可能的模块。

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-02-21
          • 2014-01-08
          • 2019-02-20
          • 2018-11-13
          • 2021-03-27
          • 2020-04-30
          • 1970-01-01
          相关资源
          最近更新 更多