微服务架构,在这种情况下是什么服务

mfr*_*het 11 java rest web-services microservices

我正在阅读一些关于微服务架构的文档(例如通过 这个链接),我想知道在这种情况下究竟是什么服务.

在IT中,一切都可以称为服务: - 通过java命令启动的SPRING REST应用程序,如:

java -jar build/libs/gs-rest-service-0.1.0.jar

  • 它也可以是与DDD中的业务层对应的类
  • 它可能只是与所研究的领域相关的东西,比如向某人提供某些东西
  • 和许多其他......(android后台运行服务等...)

但在微服务中,它意味着什么?例如,在Java EE堆栈中使用什么样的技术/工具来创建"自己运行的服务"?它只与webservices有关?

sap*_*ens 1

没错,这就是微服务模型的美妙之处!例如,当您设计 Maven 多模块项目时,您可以开始考虑微服务。低耦合,关注点分离清晰,甚至可以是异步通信。当您更有信心将它们提取到应用程序中并在一台主机中运行时,下一步 - 在不同的主机中运行。由您决定如何部署它们,这与您想要实现的目标(容错与低延迟等)以及您拥有的 DevOps 资源有关(因为分离越多,您需要的维护就越多)。

关于 Java EE 堆栈 - 没有什么具体的,只是使用java -jar或 Tomcat 等应用程序服务器运行的常见 jar 或 war 文件。

另一个方向是使用 Docker + CoreOs / kubernetes / ...、Mesos + Marathon 等工具,但它们适用于微服务中的任何语言/框架。

编辑:

微服务可以使用同步(REST、SOAP)和异步协议(ActiveMQ、RabbitMQ 等消息队列)的组合。由您决定如何组合它们。我的例子:labs.bench.co/2014/12/10/microservices-at-bench-intro