【问题标题】:Adding dependencies to microservices向微服务添加依赖项
【发布时间】:2016-11-24 08:19:47
【问题描述】:

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

【问题讨论】:

  • “微服务的所有逻辑都应该是自包含的,并且可以重复逻辑”[需要引用]
  • @dnault - infoq.com/news/2015/01/microservices-sharing-code 怎么样。我同意你的观点,但是,很容易找到上述声明的支持者......

标签: java spring spring-boot microservices spring-cloud-netflix


【解决方案1】:

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

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

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

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

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

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

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

作者接着说:

确定你想要的动机是最重要的 分享代码,不幸的是没有正确的答案 题。和其他一切一样,它是上下文相关的。

那么,说了这么多,您是否应该集中您的连接器?

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

这些问题并不容易回答,但希望这能帮助您得出正确的结论。

【讨论】:

  • 非常感谢,汤姆。是的,我需要考虑一下。目前,我认为使用库共享连接器的数据方案似乎是最好的方法。但我想当我遇到任何问题时我需要考虑一下。
猜你喜欢
  • 2015-09-03
  • 2011-12-15
  • 2020-05-21
  • 2022-01-08
  • 2021-05-12
  • 2020-12-09
  • 2017-09-08
  • 2019-04-01
  • 1970-01-01
相关资源
最近更新 更多