如何设计微服务数据库一对下



我有一个服务飞机服务,可以处理有关飞机,飞机类型等的所有数据。而且我有一个服务航班服务,可以处理有关航班的所有数据。我必须将飞机链接到飞机。

通常,我会在飞机链接的飞行表中创建一个外键。但是在微服务体系结构中,我有域和单独的数据库。

如何表示这个?

我可以为所有飞机提供一个数据库,并为所有航班提供一个数据库。飞行桌成为飞机的间接外国钥匙。当我调用飞行服务时,它会从飞机表中调用带有ID的飞机服务,然后构建响应。我不直接从飞行服务中调用飞机数据库。当我删除飞机时,我必须告诉飞行服务不再存在,并且飞行服务必须更新间接的外键。

我的解决方案正确吗?

什么是最佳实践?

在处理微服务时,最佳数据库实践的方式有多种,它在所使用的实体的域以及应用程序使用的范围上可能有所不同。

MICOR服务中数据库设计的最佳实践很少,从列出其中的几个

开始
1 - Private-tables-per-service – each service owns a set of tables that must only be accessed by that service
2 - Schema-per-service – each service has a database schema that’s private to that service
3 - Database-server-per-service – each service has it’s own database server.

您可以根据数据大小和数据计数混合和匹配。

我希望您参考并浏览此页面以获取一个完美的示例。

微服务数据库最佳实践

确定您将拥有的每个服务的负载。负载可以通过两种方式计数。

  • 数据负载(将检索多少数据)
  • 服务命中率(将调用多少次服务)

然后您可以决定。

最新更新