2017-04-05 81 views
0

我正在管理一个非常大的企业应用程序,因为我实现了微服务体系结构。基于业务实体&的操作创建了独立微服务。 例如,用于数据库访问的单独微服务

  1. 用户操作服务
  2. 产品运营服务
  3. 财务运营服务

请注意,每个服务使用与WCF N层架构来实现。即具有单独的层(可独立部署到单独的服务器)以用于业务和数据访问。

有是由所有的微服务访问的中央数据库。有一些常见的实体像所有服务访问的“用户”,所以我们在多个服务中有冗余的数据库调用。由于需要从许多地方的数据库访问更多的努力(即一列重命名需要的所有应用程序的部署)

为了减少&优化代码,我打算创建单独的微服务,并将所有数据库操作了进去。即服务可以为“数据库操作服务”调用任何数据库操作,如添加/更新/选择。

我想知道是否有我不知道的任何隐藏的挑战。我是否应该这样想?我可以认为这个概念有什么改进?

回答

0

我打算创建单独的微服务,并将所有数据库操作进去

这就是你将失去从微服务架构的所有优点。一项服务停止运行 - 整个应用程序停机。除非您在多个节点上进行复制。

如果如果一个人服务下去(不意味着它是连接到数据库服务)您的应用程序不能正常工作,那么它仍然很糟糕的建筑和不使用微服务架构的好处。

纠正通信的是,如果服务将有自己的数据库。或者至少每个想要的服务,例如实体用户,都不会从数据库中获取它,而是从适当的服务中获取它。并且该合适的服务可以从一开始就从普通数据库中获取。在住宿microService架构过程

下一步(改善)。将每个服务单独的数据库的创建。而通过“单独”,我的意思是一个服务的临时故障或一个数据库的临时故障将允许应用程序的其余部分保持运行。

一般来说,有在你的方法没有隐藏的挑战。它只是没有提供任何好处,作为monolith应用程序和基于微服务的中间形式。