微服務 WildFly Swarm 管理<十五>

Expose Application Metrics and Information

要公開關於咱們的微服務的有用信息,咱們須要作的就是將監視器模塊添加到咱們的pom.xml中:java


這將使在管理和監視功能獲得實現。從監控角度來看,WildFly小組公開了一些基本指標:git

    • 關於WildFly羣集在/節點上運行的節點信息github

    • JVM的堆的使用狀況後端

    • JVM 進程/線程信息api

咱們還能夠添加本身的健康端點,能夠調用一些操做或查詢咱們的微服務部分來輕鬆地揭示咱們的服務正在作什麼。您能夠利用大多數現代集羣的內置健康檢查探針來調用您的微服務健康端點來肯定在是否健康,在某些狀況下,只需殺死它並從新啓動。請參閱在文檔,以得到更多關於添加健康探針的文檔。瀏覽器

How to Run This Outside of Maven

咱們已經看到了幾種方法來運行咱們的WildFly羣。對於開發,您可能會使用這樣的maven插件運行:服務器

當您構建二進制文件時,您能夠運行它以下:微信

這將把咱們的項目,不管是打包成一個JAR仍是WAR(由您的pom.xml中的<pacjaging>定義所指定),並將其轉換爲一個可執行的 JAR 。而後能夠這樣運行:框架

請注意,不管您的最終構建工件的名稱是什麼,WildFlySwar-Maven 插件都會在名稱中添加 -swar.jar 擴展。maven

Calling Another Service

在微服務環境中,每一個服務負責向其餘協做者提供功能或服務。若是咱們但願擴展「HelloWorld」微服務,咱們將須要建立一個可使用JAX-RS客戶端功能調用的服務。就像咱們爲SpringBoot微服務所作的那樣,咱們將從隨書附帶的源代碼中利用後端服務。交互看起來相似於:

若是您查看這本書的源代碼,咱們將看到一個名爲Backend的Maven模塊,它包含一個很是簡單的HTTPservlet,能夠經過GET請求和查詢參數調用它。此後端的代碼很是簡單,而且不使用任何微服務器-副框架( SpringBoot、Dropwizard 或 WildFly Swarm)。

要在端口8080上啓動後端服務,導航到後端目錄並運行如下命令:

該服務在/api/backend公開,並接受一個查詢參數問候語。例如,當咱們使用如下路徑/api/backend?greeting=Hello 調用此服務時,後端服務將使用以下所示的JSON對象進行響應:

咱們可能看到的信息以下:

咱們將建立一個新的HTTP端點,/API/greeting,包含在咱們的WildFly Swarm hola-wildflyswarm 示例中,並使用 JAX-RS 客戶端來調用這個後端!

在src/main/java/com/redhat/examples/wfswarm/rest 中建立一個名爲 GreeterResource 的新類,並將其填入相似於咱們爲 HolaResource 所作的操做,如示例4-1所示。

咱們在這裏建立了一個簡單的 JAX-RS 資源,它公開了一個/API/greeting端點,它只返回BackendServiceUrl 字段的值。還請注意,若是沒有設置環境變量,咱們將後端主機和端口注入爲具備默認值的環境變量。再說一遍,咱們只是使用 DeltaSpike @ConfigPropty 來實現這一點。

讓咱們還添加BackendDTO類,如示例4-2所示,該類用於封裝來自後端的響應。

接下來,讓咱們添加咱們的JAX-RS客戶端實現來與後端服務通訊。它應該看起來像示例4-3。

如今,咱們可使用命令行中的Maven來構建咱們的微服務;或者,若是您仍然在JBossForge中,則能夠運行Build命令:

或者

當咱們啓動 WildFly 集羣微服務時,咱們須要指定一個新的 HTTP 端口(由於後端服務已經在端口8080上運行),或者咱們只須要指定一個端口偏移。若是咱們指定一個端口偏移量,WildFly Swarm將嘗試在其默認端口8080下部署;可是若是該端口已經在使用中,那麼它將增長該端口的swar.port.offset,而後再試一次。若是咱們使用1的偏移量,而且8080端口上有衝突,那麼8081端口將是WildFlyS付款嘗試的下一個目標。讓咱們運行帶有端口偏移的微服務:

如今,讓咱們導航瀏覽器到http:/localhost:8081/api/greeting,看看咱們的微服務是否正確地調用後端並顯示咱們所指望的:

Where to Look Next

在這一章中,咱們瞭解了WildFly Swarm,並看到了與 Dropwizard 和 Spring Boot 的不一樣之處和類似之處。咱們還學習瞭如何公開 REST 端點、配置和度量,以及如何調用外部服務。這是一個快速介紹 WildFly Swarm,決不是一個全面的指南。有關更多信息,請參見下列連接:

  • WildFly Swarm

  • WildFly Swarm documentation

  • WildFly Swarm examples on GitHub

  • WildFly Swarm Core examples on GitHub

  • WildFly Swarm blog

  • http://wildfly-swarm.io/community/

原文:

做者源碼:https://github.com/redhat-developer/microservices-by-example-source

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

相關文章
相關標籤/搜索