关系微服务数据库

问题描述

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

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

这是一个方法吗?

解决方法

乍看之下,我想说这听起来不是一个好主意,但是基于您在此处提供给我们的信息,这很难说。为了更准确地告诉您,我需要知道您在谈论哪种域或应用程序用例。

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

我计划将每个表用作服务(控制器)来控制 那个桌子

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

问题

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

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