3

我已经构建了一些使用大量外部服务的微服务。这些外部服务中很少有被我构建的超过 1 个微服务所使用。我已将这些微服务的连接器构建为一个库项目,并将其作为依赖项包含在我的所有微服务项目中。但是我读到微服务的所有逻辑都应该是自包含的,并且可以重复逻辑。如果是这种情况,是否建议我在每个微服务中定义这些连接器,而不是使用共享库?

4

1 回答 1

3

...微服务的所有逻辑都应该是独立的,并且可以重复逻辑

我认为这是您正在努力解决的问题的核心。这个说法真的是真的吗?

稍后进行快速谷歌搜索: http ://www.simplicityitself.io/our%20team/2015/01/12/sharing-code-between-microservices.html

本文讨论了这个确切的问题,我们现在可以将其框架为微服务架构中适当的重用级别是什么?

作者提供了开发人员认为需要共享代码的原因列表,按照耦合和隔离损失从低到高排列:

  • 利用现有的技术功能
  • 共享数据模式,例如,使用类作为共享模式的强制执行。
  • 共享数据源,多个服务使用同一个数据库。

虽然这个列表涵盖了大部分原因,但我要补充一个共享代码的重要原因,这与用于快速建立微服务的通用框架有关,通常称为微服务机箱模式。

作者接着说:

确定您想要共享代码的动机至关重要,因为不幸的是,这个问题没有正确的答案。像其他一切一样,它是上下文的。

那么,综上所述,您是否应该集中您的连接器?

那么,这些依赖项在我们的列表中的什么位置?在你不再做微服务而是构建一个单体之前,你能忍受什么程度的耦合?

这些不是容易回答的问题,但希望这将有助于指导您得出正确的结论。

于 2016-07-21T10:31:46.637 回答