用Java構(gòu)建響應(yīng)式微服務(wù)
這本書是寫給對(duì)開發(fā)微服務(wù)和分布式應(yīng)用感興趣的開發(fā)人員和架構(gòu)師忱叭,它并不闡述分布式系統(tǒng)的基礎(chǔ)理論隔崎,而是聚焦于響應(yīng)式對(duì)于構(gòu)建高效的微服務(wù)系統(tǒng)的優(yōu)勢(shì)。微服務(wù)可以視為積木概念的拓展:程序通過消息傳遞來溝通窑多、而不是直接調(diào)用API仍稀,所以他們能夠分布在多個(gè)服務(wù)中。為什么微服務(wù)如此流行埂息?主要?dú)w因于兩個(gè)因素的結(jié)合:云計(jì)算和快速伸縮的需要技潘。
云計(jì)算使得更方便部署成千個(gè)小服務(wù),可伸縮性使得它成為必需千康。
在這本書里兔乞,我們將看看Eclipse Vert.X (http://vertx.io)怎樣被用來構(gòu)建響應(yīng)式微服務(wù)系統(tǒng)。Vert.X是一個(gè)構(gòu)建響應(yīng)式分布式系統(tǒng)的開發(fā)包豪硅。Vert.X是非常靈活的羡疗。因?yàn)樗且粋€(gè)開發(fā)包,
你能夠構(gòu)建簡(jiǎn)單的網(wǎng)絡(luò)程序豪椿,web應(yīng)用奔坟,一個(gè)包含了大量消息、REST服務(wù)---顯而易見地---微服務(wù)的系統(tǒng)搭盾,這給了Vert.X更流行咳秉,龐大的社區(qū),生機(jī)勃勃的生態(tài)系統(tǒng)鸯隅。Vert.X促進(jìn)了微服務(wù)澜建,它變得如此流行。從一開始,Vert.X被專門用來構(gòu)建分布式的炕舵、自治的服務(wù)何之。用Vert.X開發(fā)的系統(tǒng)是基于響應(yīng)式系統(tǒng)準(zhǔn)則(http://reactivemanifesto.org)的。他們是可響應(yīng)的咽筋、有彈性的溶推、可恢復(fù)的、用異步消息交互的晤硕。
這本書超越了Vert.X和微服務(wù)悼潭。它關(guān)注微服務(wù)系統(tǒng)運(yùn)行的環(huán)境,介紹許多需要關(guān)注的工具舞箍。在這個(gè)旅程中舰褪,我們將學(xué)習(xí):
. Vert.X是什么,怎樣用它
. 響應(yīng)式意味著什么疏橄,響應(yīng)式微服務(wù)是什么
. 怎樣用HTTP或者消息實(shí)現(xiàn)微服務(wù)
. 構(gòu)建響應(yīng)式微服務(wù)系統(tǒng)的模式
. 如何在虛擬機(jī)或云環(huán)境中部署微服務(wù)
這本書上出現(xiàn)的源代碼你可以從https://github.com/redhat-developer/reactive-microservices-in-java獲得占拍。
準(zhǔn)備環(huán)境
Eclipse Vert.x需要Java8,在這本書捎迫,我們提供了不同的例子晃酒,我們將用Apache Maven來做build。確信你預(yù)先安裝了:
. JDK1.8
. Maven3.3+
. 命令行終端(Bash,
PowerShell等等)
即使不是必需的窄绒,我們建議用一個(gè)IDE比如Red Hat 開發(fā)套件(https://developers.redhat.com/products/devsuite/overview)贝次。在最后一章,我們用OpenShift彰导,一個(gè)基于Kubernetes
(https://kubernetes.io)的蛔翅、運(yùn)行容器化微服務(wù)的容器平臺(tái)。本地安裝OpenShift位谋,我們推薦Minishift (https://github.com/minishift/minishift)或者Red Hat容器開發(fā)包(CDK V3). 您可以從https://developers.redhat.com/products/cdk/download下載山析。讓我們這就開始。