微服务架构中的Django admin +身份验证系统

mrg*_*oos 6 django django-admin django-apps django-rest-framework microservices

我有一个大型的 Django项目,基本上是一个包含应用程序的整体程序。我需要将其分解为微服务。

我有2个问题,无法找到明确的答案:

  1. 当前,我们正在广泛使用Django admin,我想知道一旦整体崩溃,是否有可能继续使用它。这意味着在“用于工作” UI中从所有微服务读取和操作数据。顺利进行此过程也将有所帮助。

  2. 身份验证和授权-我们仍然可以在微服务架构中使用内置的“应用”吗?是否可以仅将这种补偿带到另一个服务并通过HTTP与之通信?

Con*_*enu 1

目前我们正在广泛使用 Django admin,我想知道一旦单体被破坏是否可以继续使用它。这意味着在“用于工作”的 UI 中读取和操作来自所有微服务的数据。这也将有助于这个过程更加顺利地进行。

是的,您可以,但它可能无法访问其他微服务数据库(既不写入也不读取)。这意味着,如果管理微服务更新某些文章(或您拥有的任何实体类型,这只是一个示例),那么这不会立即反映在显示该文章的微服务中。您需要有某种机制将更新从管理员传输到其他微服务。所以共享数据库/表不是一个选择。

身份验证和授权 - 我们仍然能够在微服务架构中使用这个内置的“应用程序”吗?是否可以将此配对仅带到另一个服务并通过 HTTP 与其进行通信?

是的,但是你需要将其分成两侧。一侧负责管理用户和角色/权限,另一侧负责对用户进行身份验证并检查用户是否可以执行某些操作。

第一方面应该是微服务(创建/管理或用户以及角色/权限的管理)。

检查部分可以是微服务,但这些职责通常由 API 网关或每个需要身份验证或授权的微服务中的模块(+本地、复制数据)承担。这些都是跨领域的问题。如果它们驻留在单独的微服务中,则会出现弹性问题:如果该微服务出现故障,则会导致整个系统瘫痪。