本报告是为有兴趣开发微服务和分布式应用程序的开发人员和架构师编写的。它并没有解释分布式系统的基础,而是着重于构建高效的微服务系统的响应式好处。微服务可以看作是模块化基本思想的延伸:通过消息传递而不是直接的API调用来连接的程序,这样它们就可以分布在多个服务之间。为什么微服务如此受欢迎?这主要是由于两大因素的结合:云计算和需要快速地上下伸缩。云计算使部署数以千计的小型服务变得方便;而服务缩放则是必须的。
在本报告中,我们将看到如何使用Eclipse Vert.X(http://vertx.io\)构建响应式的微服务系统。Vert.x是构建响应式和分布式系统的工具箱。Vert.x是非常灵活的。因为它是一个工具箱,您可以构建简单的网络实用程序、现代web应用程序、接收大量消息的系统、REST服务,当然还有微服务。这种可塑性使得Vert.x大受欢迎,和一个很大社区,一个充满活力的生态系统。 Vert.x在它变得如此流行之前就已经在推广微服务了。从一开始,Vert.x已经被定制来构建由一组分布式和自治服务组成的应用程序。使用Vert.x的系统是建立在响应式系统原则之上的(http://reactivemanifesto.org\)。它们具有响应性(responsive)、伸缩性(elastic)、弹性(resilient),并使用异步消息传递来进行交互(即消息驱动的Event-Driven)。
这份报告的内容超出了 Vert.x和microservices。它考察了一个微服务系统运行的整个环境,并介绍了获得所需结果所需的许多工具。在这段旅程中,我们将学习:
Vert.x是什么,怎么使用它?
什么是响应式,什么响应式的微服务!
如何使用HTTP或消息实现微服务?
用于构建响应式微服务系统的模式。
如何在虚拟机或云环境中部署微服务?
本报告中给出的代码存储在Github上,地址为:
https://github.com/redhat-developer/reactive-microservices-in-java