這本書(shū)是寫(xiě)給對(duì)微服務(wù)和分布式應(yīng)用感興趣的開(kāi)發(fā)者和架構(gòu)師的。書(shū)里并沒(méi)有對(duì)分布式系統(tǒng)的基本知識(shí)進(jìn)行說(shuō)明,而是關(guān)注于reactive這一特性對(duì)構(gòu)建高效微服務(wù)系統(tǒng)的益處货矮。微服務(wù)可以看做模塊化的延伸:程序是通過(guò)消息傳遞的方式通信蜒什,而不是直接的API調(diào)用,因此他們可以分布到多個(gè)服務(wù)上。為什么微服務(wù)這么流行?根本上是兩個(gè)因素共同導(dǎo)致:云計(jì)算的流行以及對(duì)迅速擴(kuò)張和縮減系統(tǒng)這一需求的增大。云計(jì)算使得構(gòu)建大量小型服務(wù)非常方便材义,而系統(tǒng)的伸縮需求讓我們必須使用微服務(wù)。
這本書(shū)中嫁赏,我們將會(huì)了解Eclipse Vert.x(http://vertx.io )怎樣用來(lái)構(gòu)建reactive微服務(wù)其掂。Vert.x是一個(gè)用于構(gòu)建reactive和分布式系統(tǒng)的工具箱。Vert.x很易用潦蝇。因?yàn)樗且粋€(gè)工具箱款熬,所以你可以用來(lái)構(gòu)建基礎(chǔ)的network模塊深寥、先進(jìn)的web應(yīng)用、大規(guī)模消息處理系統(tǒng)贤牛、REST服務(wù)等很多項(xiàng)目惋鹅,當(dāng)然也包括微服務(wù)。這種延展性和可用性給Vert.x帶來(lái)了很棒的機(jī)會(huì)殉簸、大的社區(qū)闰集、活躍的生態(tài)。在微服務(wù)流行之前般卑,Vert.x就在促進(jìn)其發(fā)展武鲁,它被修改后用于構(gòu)建由若干分布式、帶有自治性的服務(wù)組合構(gòu)成的系統(tǒng)蝠检。用Vert.x構(gòu)建的系統(tǒng)遵從reactive系統(tǒng)規(guī)范 (http://reactivemanifesto.org )沐鼠;它們是可響應(yīng)的、高伸縮性的叹谁、可自治的饲梭,并使用異步消息來(lái)進(jìn)行通信。
這本書(shū)不僅限于Vert.x和微服務(wù)焰檩。本書(shū)著眼于構(gòu)建微服務(wù)系統(tǒng)需要的整個(gè)環(huán)境排拷,并介紹為了得到完美結(jié)果所需的一些工具。在閱讀本書(shū)過(guò)程中锅尘,我們將會(huì)學(xué)到:
- 什么是Vert.x以及該怎樣使用它
- reactive究竟是什么意思以及什么是reactive微服務(wù)
- 怎樣使用HTTP或消息系統(tǒng)來(lái)實(shí)現(xiàn)微服務(wù)
- 構(gòu)建reactive微服務(wù)的模式和套路
- 怎樣在虛擬機(jī)或云服務(wù)器上發(fā)布微服務(wù)
本書(shū)中呈現(xiàn)的代碼都可以在下面網(wǎng)頁(yè)中得到,https://github.com/redhat-developer/reactive-microservices-in-java.
你所需的開(kāi)發(fā)環(huán)境
Eclipes Vert.x需要Java 8, 在本書(shū)中我們提供的這些例子都使用了Java 8. 我們使用Apache Maven作為構(gòu)建工具布蔗。確保你已經(jīng)安裝了一下幾個(gè)工具:
- JDK 1.8
- Maven 3.3+
- 一個(gè)命令行終端(Bash, PowerShell 等)
雖然不是必須的藤违,但是我們推薦使用一個(gè)集成開(kāi)發(fā)環(huán)境(IDE),比如Red Hat Development Suite(https://developers.redhat.com/products/devsuite/overview )纵揍。在最后一張顿乒,我們使用了OpenShift;它是一個(gè)基于Kubernetes(https://kubernetes.io )的容器平臺(tái)泽谨,用于運(yùn)行容器化的微服務(wù)璧榄。為了在本地安裝OpenShift,我們推薦使用Minishift(https://github.com/minishi?/minishi? )吧雹,或Red Hat Container Development Kit(CDK) v3. CDK可以在這里下載https://developers.redhat.com/products/cdk/download.
那我們開(kāi)動(dòng)吧骨杂!