我知道有关微服务的大多数文章都告诉我将微服务设计为独立的并拥有数据库所有权。我们创建了独立于其他上下文的有界上下文或域。但是,这种域具有各种功能,技术,集成或可扩展单元的各种列表。
如图所示,每个域都使用相同的资源(数据库)提供多个服务。域A的数据库包含大约7个关系表。 在域A中,我们提供以下服务:
此体系结构的优点是:
诸如“ 11 Reasons Why You Are Going To Fail With Microservices”之类的文章告诉我,我不应该为每个集成创建服务。他们还告诉我,任何服务都不应直接与另一服务的数据库对话。我真的在设计我的微服务吗?如果合并域中的所有服务,如何保留所描述的好处?还是有其他方法可以保持这种粒度并仍然使所有服务独立?