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

时间:2019-06-13 17:02:58

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

因此,对于这种“整体与微服务”体系结构的辩论,我是陌生的,并且我对其中的大部分内容都非常了解。从我有限的理解中,我发现在微服务架构中,每个功能(可以说)都是一个单独的应用程序。现在,我需要对有关实现微服务的django进行一些说明。这是我的问题

我应该将每个微服务(也称为应用程序)完全放在一个不同的django项目中,还是应该将每个应用程序(也称为微服务)都放在一个django项目中,并将其隔离(如松散耦合)?

3 个答案:

答案 0 :(得分:0)

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

也不必在Java中创建一个微服务,而在python中创建一个微服务,因为它们不相关。

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

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

这是关于如何将模块/域划分为微服务的两种建议模式。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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