微服务 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

有什么讨论的内容,能够加我微信公众号:

相关文章
相关标签/搜索