模块和微服务之间的区别

时间:2018-11-27 10:48:13

标签: java module architecture microservices

This abstract给出了微服务和API之间的区别:

  

微服务通过以下方式公开其接口及其功能:   API。 API是微服务响应的所有端点的列表   当它收到命令/查询时。微服务包含API   以及用于回应客户的其他内部+隐藏的东西   请求。

我已经使用Java处理模块和微服务,但是有没有更好的方法来区别地描述模块和微服务之间的区别?

根据我的经验,几个模块作为微服务项目的一部分被导入。微服务是具有公开RESTful端点的附加功能的某种模块吗?是什么将模块与微服务区分开来?反之亦然?

我们还有更多可以讨论的话题来澄清潜在的困惑吗?

我添加了一些视觉辅助工具,以使内容更清晰:

An example of a microservice that utilises various modules (Source: Author)

如果可以的话,请反驳,并提供有关您使用微服务和模块的经验的可靠参考。

3 个答案:

答案 0 :(得分:1)

微服务提供API(REST或不休息)。

微服务代码的编写方式可以使某些更大的项目将其用作模块。

当我们选择它作为微服务而不是模块时:

  1. 我们将其与正在使用它的系统分离
  2. 此微服务可以独立扩展,即使用特定的数据库
  3. 使用任何开发语言(最适合其用途)-如果将其用作模块,则必须使用编写大多数代码库和模块的语言来编写
  4. 照顾数据补丁

答案 1 :(得分:1)

模块和微服务之间的区别是包装之一。模块是编程级别的构造,它们打包和封装一个软件,以便通过包含在部署中(供进程内执行使用)供其他软件重用。微服务是软件的部署,供其他软件使用,由有线协议分隔。

答案 2 :(得分:1)

模块和微服务是软件行业中使用的完全不同的术语。我可以用电子商务行业的例子来解释。

结帐是一个模块,具有购物车,订单查看,添加到购物袋等功能。这是更通用的术语。

微服务更具技术性,它们是彼此独立的服务。 例如,我们可以将“添加到购物袋”创建为微服务。这只会在购物袋中添加一个项目。 (最重要的是)仅需要袋子ID和要添加的产品。该服务将不知道其他功能,例如送货方式,付款方式等。

相关问题