单体应用和微服务概念

12

我有一个非常大的django项目,具有许多功能,并使用django作为后端框架。我的项目允许用户同时使用网站和iOS应用程序。

我正在研究使用单片应用程序(目前正在使用单片)与微服务,我观看了这个视频,但其中一部分让我感到困惑。在1:05处,他预览了他的'单片'应用程序,然后才改为使用微服务,我认为它看起来像是一个带有各种不同应用程序的单一项目。

1)这些在技术上只是文件夹而不是应用程序吗?这些(我认为他称之为文件夹)都有一个models.py和views.py,大多数都有admin.py。

2)是什么使其成为单片应用程序?仅因为他不仅在终端中使用django-admin startapp 来创建这些 '文件夹'吗?

3)还是微服务是多个连接的项目,而不仅仅是单个项目中的多个应用程序?

我的最大困惑在于视频中预览的项目,因为在那之前,我以为我已经很好地掌握了这些概念。我只是想转换为使用微服务,但是在观看了这段视频后,我甚至不确定单片应用程序是什么。

2个回答

9
主要区别在于单体架构和微服务的部署方式。单体应用是一个大型应用,必须全部部署或不部署。而微服务由多个"应用"组成,彼此协作以实现其目的,并且每个应用可以独立部署。通常情况下,单体应用更难以部署,风险更高,因为如果部署不当,则整个系统可能会崩溃。对于微服务来说,每个服务只处理业务处理的一部分,因此理论上,如果其中一个服务部署不当,只有部分应用会崩溃。

8

这只是术语混淆。

在单体应用和微服务的背景下,“应用程序”指的是Web应用程序,或者更具体地说是WSGI应用程序。Django项目通常作为WSGI应用程序部署。因此,单体应用将是一个巨大的Django项目的部署,而微服务将是多个较小的Django项目,这些项目被单独部署。

“单体应用”有时可能用于指代Django应用程序,即在INSTALLED_APPS中的Python模块。但是,在这种情况下,您不会谈论微服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接