第一章 介绍
版权声明:本文为博主自主翻译,转载请标明出处。 https://blog.youkuaiyun.com/elinespace/article/details/807856541
这份报告针对对开发微服务和分布式应用感兴趣的开发者和架构师。它不会讲解分布式系统的基础,而是关注于响应式,它有利于构建高效的微服务系统。微服务可以被看作是基本的模块化思想的延伸:程序通过消息传递而不是直接的API调用连接,以便它们可以在多个服务之间分布式。为什么微服务如此受欢迎?这主要是由于两个因素的结合:云计算以及快速扩容和缩容的需求。云计算使得部署成千上万的小型服务变得方便;伸缩性使得这么做是有必要的(译者注:意思是微服务是有必要的,云计算使得微服务化变得便捷,伸缩性使得微服务是有必要的)。
在这份报告中,我们将看到如何使用Eclipse Vert.x构建响应式微服务系统。Vert.x是一个构建响应式及分布式系统的工具包。Vert.x非常灵活。因为它是一个工具包,你可以构建简单的网络工具、现代的Web应用、获取大量消息的系统、REST服务,显然还有微服务。这种延展性给Vert.x带来了极大的人气、一个庞大的社区以及一个充满活力的生态系统。Vert.x在它变得如此受欢迎之前就已经在提升微服务了。从一开始,Vert.x就被定制用来构建由一组分布式的自治服务组成的应用程序。使用了Vert.x的系统构建在响应式系统原则的基础之上。它们是响应式的、可伸缩的、有弹性的并且使用异步消息传递进行交互。
这份报告超出了Vert.x和微服务范围。它着眼于微服务系统运行的整体环境,并介绍了获得期望结果所需的许多工具。在这个过程中,我们将学到:
- 什么是Vert.x以及如何使用它
- 响应式是什么意思以及什么是响应式微服务
- 如何使用HTTP或者消息实现微服务
- 用于构建响应式微服务系统的模式
- 如何在一个虚拟的或者云环境部署微服务
这份报告中出现的代码位于https://github.com/redhat-developer/reactive-microservices-in-java。
环境准备
Eclipse Vert.x需要Java 8,在本报告中提供的不同示例我们同样采用Java 8。我们将使用Apache Maven构建示例。确保你已经安装了以下内容:
- JDK 1.8
- Maven 3.3+
- 一个命令行终端(Bash、PowerShell等)
即使不是强制性的,我们还是推荐使用一款IDE,如Red Hat Development Suite。在最后一章,我们使用OpenShift——一个构建在Kubernetes之上的容器平台来运行容器化微服务。本地安装OpenShift,我们推荐Minishift或者Red
Hat Container Development Kit (CDK) v3,你可以从https://developers.redhat.com/products/cdk/download下载CDK。
让我们开始。