【发布时间】:2018-11-28 08:43:18
【问题描述】:
This abstract 给出了微服务和 API 之间的区别:
微服务通过 API。 API 是微服务响应的所有端点的列表 当它收到命令/查询时。微服务包含 API 以及它用来响应客户的其他内部+隐藏的东西 请求。
我使用过 Java 中的模块和微服务,但有没有更好的方法来区分模块和微服务之间的区别?
根据我的经验,我们将几个模块作为微服务项目的一部分导入。微服务是某种具有公开 RESTful 端点的附加功能的模块吗?模块与微服务或反之亦然的区别是什么?
我们是否可以就相关主题进行更多讨论以澄清潜在的混淆?
为了更加清晰,我添加了一些视觉辅助:
如果可以请反驳,并提供与您在微服务和模块方面的经验相关的可靠参考。
【问题讨论】:
-
在我看来,微服务至少应该被假定为远程服务。
-
微服务必须充当可运行的独立服务,模块不一定。它可能只是相关类的集合。
-
微服务和模块的定义太多了,很难说哪个是正确的,这甚至可能引发激烈的讨论。然而,我 认为微服务与模块/库的两个区别是 REST 接口的存在以及独立运行的能力(不一定有用但可能) - 所以任何可以在其上运行的东西拥有(或在容器中)并公开 REST api 可以被视为微服务。
-
@Thomas REST 是不必要的具体化。微服务提供一个 API。通常它是 RESTful,但这不是必需的。
-
@Michael 是的,没错,但是我(也就是我自己)会说提供的 API 必须允许用户使用不同的技术编写,而不需要特殊的包装器,即一些基于文本的格式,例如 REST。
标签: java module architecture microservices