響應式微服務 in java 譯 <十六> Deploying a Microservice in OpenShift

Deploying a Microservice in OpenShiftjava

是時候向OpenShift部署一個微服務了。咱們將要部署的代碼包含在代碼存儲庫的OpenShift/hello-microservice-OpenShift目錄中。VER-TIC很是接近於咱們以前開發的Hello微服務(HTTP):react

此代碼不依賴於特定的OpenShift API或構造。它是您的應用程序,就像您在機器上開發的應用程序同樣。Java代碼與部署選擇的分離必須是通過深思熟慮的設計選擇,以使代碼可以在任何雲平臺上運行。瀏覽器

咱們能夠手動建立全部的OpenShift實體,可是讓咱們使用由Fabric 8提供的maven插件(https://maven.work8.io/),這是一個面向Kubernetes的端到端開發平臺。若是您打開頭.xml文件,您將看到這個插件是在OpenShift配置文件中配置的,並與Vert.xMaven插件協做,以從新訪問OpenShift entities。緩存

要將咱們的微服務打包並部署到OpenShift,啓動:服務器

這個命令與您的OpenShift實例交互(您已經在該實例上用oc登陸)來建立一個構建(使用源代碼鏡像構建策略)並觸發它。第一次構建可能須要一些時間,由於它須要檢索生成器鏡像。不要擔憂--一旦緩存了全部內容,構建就會建立得更快。構建的輸出(和鏡像)由部署協商使用,部署協商也是由Fabric8Maven插件建立的。默認狀況下,它建立一個Pod。服務也是由插件建立的。您能夠在OpenShift儀表板中找到全部這些信息,如圖5-4所示.微信

默認狀況下,Fabric 8 Maven插件不會建立路由。可是,咱們根據它的描述(src/main/works 8/route.yml)建立了一個。若是在瀏覽器打開 http://hello-microservice- reactive-microservices.192.168.64.12.nip.io/Luke,咱們將看到相似下面的:maven

hello-microservice-1-9r8uv 是服務於請求的Pod 服務的名稱。微服務

Service Discoveryui

如今咱們已經部署了Hello微服務,讓咱們從另外一個微服務中使用它。咱們將在本節中部署的代碼包含在代碼存儲庫中的OpenShift/hello-microservice-Customer-OpenShift目錄中。插件

要使用微服務,咱們首先必須找到它。OpenShift支持一種服務發現機制。服務查找可使用環境變量、DNS或Vert.x服務發現來完成,咱們在這裏使用了Vert.x服務發現。xml項目被配置爲導入vert.x服務發現、Kubernetes服務導入器和服務器端服務發現。您沒必要在提供者端顯式註冊服務,由於Fabric8Maven插件爲咱們聲明瞭一個服務。咱們的消費者將取回這個OpenShift服務,而不是Pod。

在start方法中,咱們使用服務發現來查找hello微服務。而後,若是服務可用,咱們啓動HTTP。在OpenShift中部署響應性微服務服務器,並在檢索到的WebClient上保留一個引用。咱們還將配置傳遞給WebClient,並禁用「保持活動」設置(幾分鐘後咱們將看到緣由)。在InvokeHelloMicroservice中,咱們沒必要將端口和主機傳遞給rxSend方法(就像咱們之前作的那樣)。實際上,WebClient被配置爲針對hello服務:

在終端中,導航到OpenShift/hello-microservice-consumer-OpenShift目錄,使用如下目錄構建和部署此使用者:

在OpenShift儀表板中,您應該看到第二個服務和路由(http://bit.ly/2o4xaSk)。若是您打開與hello-consumer service(http://bit.ly/2p2aHTK)關聯的路由,您應該會看到:

您可能會看到503錯誤頁,由於POD還沒有啓動。只需刷新,直到找到正確的頁面。到目前爲止沒什麼好驚訝的,由於顯示的服務返回 value 老是指示相同的Pod(由於咱們只有一個)。

https://developers.redhat.com/promotions/building-reactive-microservices-in-java/

有什麼討論的內容,能夠加我微信公衆號:

相關文章
相關標籤/搜索