【问题标题】:Microservices for Relation database关系数据库的微服务
【发布时间】:2020-12-14 07:11:24
【问题描述】:

设计微服务的最佳方法是什么?

我有一个数据库,其中包含大约 300 个数据表和一个使用 ADO.Net 查询数据库的数据访问层。我计划将每个表用作服务(控制器)来控制该表的数据。

这是一个好方法吗?

【问题讨论】:

  • 您的意思是您希望拥有 300 个微服务,每个微服务只为一张桌子服务。然后,您可能会遇到需要连接多个表的用例的问题。在微服务世界中,即使不是不可能,也很难进行连接,因为建议您不要访问其他微服务数据。如果我正确理解这个想法,我强烈建议不要这样做。相反,您可以专注于域并尝试创建表岛以满足每个域的需求并为每个域创建一个或多个微服务。但绝对不是每张桌子。

标签: orm ado.net microservices


【解决方案1】:

乍一看,我会说这听起来不是一个好主意,但根据您在此处提供给我们的信息,很难判断。为了更准确地告诉你,我需要知道你在谈论什么样的域或应用程序用例。

我很难想象您的每个表都应该被视为单独的域,您需要将其分离到一个专用的微服务中。同样,这一切都取决于您的域。

我打算将每个表作为服务(控制器)来控制 那张桌子

如果您将应用程序或解决方案拆分为微服务的标准是基于数据库表到微服务(或者每个数据库表都应该是一个微服务),那么我强烈建议您不要这样做。从开发工作和维护工作的前景来看,这将是过度杀伤力。请记住,开发基于微服务的架构解决方案是一项艰巨的任务,但维护它(确保一切正常运行)也具有挑战性。

问题

您应该问自己的问题更像是: 我应该如何或基于什么将我的解决方案拆分为微服务?

有几种方法,但最常见的是基于 DDD(域驱动设计)有界上下文。 Stackoverflow 上有很多关于 DDD 的非常好的问题/答案。 您还可以在此处查看此答案,以获取有关如何在微服务here 中处理拆分解决方案的一些信息。

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2021-03-30
    • 2019-12-03
    • 2020-03-22
    • 2018-05-01
    • 1970-01-01
    • 2016-04-08
    • 2019-02-18
    • 2016-11-05
    相关资源
    最近更新 更多