向微服务添加依赖项

时间:2016-07-20 23:16:50

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

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

1 个答案:

答案 0 :(得分:2)

  

......微服务的所有逻辑应该是自包含的   重复逻辑是好的

我认为这是你正在努力解决的问题的核心。这个陈述真的是真的吗?

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

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

作者提供了开发人员认为需要共享代码的原因列表,在耦合和失去隔离方面从最低到最高排序:

  
      
  • 利用现有技术功能
  •   
  • 使用类共享数据模式,例如,作为共享模式的实施。
  •   
  • 共享数据源,通过多种服务使用同一数据库。
  •   

虽然这个列表涵盖了大多数原因,但我会添加另一个重要的原因来共享代码,这与快速建立微服务的通用框架有关,通常称为Microservice Chassis模式。

作者说:

  

最重要的是要确定你想要的动机   共享代码,遗憾的是没有正确的答案   题。像其他一切一样,它是上下文的。

所以,所有这些,你是否应该集中你的连接器?

那么,这些依赖项在哪里适合我们的列表?在你不再做微服务而是建立一个巨石之前,你可以忍受多大程度的耦合?

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