目前我处理微服务并遇到一些问题(关于服务之间的关系),我很难找到一个好的答案/最佳实践。如果你能给我一个提示或建议你如何处理这个问题,那将是非常好的。
由于这些问题并非针对特定项目,因此我尝试使用以下示例尽可能清楚:
让我们假设您想要构建某种Youtube频道观察者,记录不同类型的频道(元)数据(视频,每小时视图/子计数,当前订阅),这些数据是在具体的时间间隔。
因此,应用程序必须提供两个主要功能,每个功能应构成一个微服务:
这两种服务都提供了相互通信的API。
管理服务连接到一个数据库,该数据库包含需要观看的频道,其基本信息(姓名,联系方式......)以及这些观察到的频道当前订阅的频道,而导入服务具有包含所有其他更多面向时间序列的信息的数据库(视频,每小时视图/子计数)。
要添加频道,只需指定频道网址。所有其他信息(姓名,联系方式......)都由导入服务添加(但也可以由用户修改)。
总而言之,如果没有经理服务的信息,导入服务完全无用,而且如果没有可用的导入服务,经理服务只能显示用户指定的频道信息(最坏情况:仅限频道网址)。总的来说:他们相互依赖。
对于一般架构来说太多了。
我遇到的问题是,导入服务在很大程度上依赖于管理服务数据库中的数据并修改它:
答案 0 :(得分:2)
当两个微服务紧密耦合时,我建议考虑合并它们。为什么你想要微服务呢?它是一个应该增长很多的大型项目,可能由独立的团队进行工作吗? 不要只是因为它们很酷而是因为需要而做微服务。在一个相对较小的单人项目中,我通常不会建议使用微服务。
我会在microservices.io上阅读有关何时使用微服务架构以及在何处拆分的内容。