Java微服务实践Springboot

微服务本地开发管理工具——Trampoline

2018-08-01  本文已影响1人  程序员精进

原文首发于『程序员精进』博客,原文链接:微服务本地开发管理工具——Trampoline

image.png

今天发现了一个本地管理 Spring Boot 应用的解决方案——Trampoline。它是一个简单的产品,提供 Web 控制台来启动、停止和监控你的应用。对于在本地进行微服务开发时,本地会运行很多不同的应用,这种情况下它还是很有用的。本文我将介绍 Trampoline 提供的主要功能。

工作原理

Trampoline 本身也是一个 Spring Boot 应用,因此启动非常简单,可以在 IDE 中启动,或是在 mvn clean install 编译后使用 java -jar 命令进行启动。默认情况下 Web 控制台将绑定在8080端口,可以使用 server.port 参数来指定其它端口。Trampoline 具备的能力有:

设置

首先,我们需要从 GitHub 将 Trampoline 代码克隆到本地工作目录。GitHub 仓库地址在此:https://github.com/ErnestOrt/Trampoline.git 。应用在 trampoline 目录中,可以使用 Maven 命令 man spring-boot:run 来运行应用的主程序,在运行后,控制台可以通过 http://localhost:8080 进行访问。

配置应用

这里我们将使用一个示例微服务项目,该项目使用 Spring Boot 2.0 构建,该示例项目 GitHub 仓库地址为:https://github.com/piomin/sample-spring-microservices-new.git 。在我们开始使用 Trampoline 进行管理前,我们需要对这个项目进行一些修改。首先,所有需要被管理的微服务项目都需要暴露 Spring Boot Actuator 接口出来,确保 /shutdown 接口是被开启的,以下是具体 Spring Boot YAML 配置示例:

management:
  endpoint.shutdown.enabled: true
  endpoints.web.exposure.include: '*'

如果想包含代码提交信息的话,需要启用 git-commit-id-plugin Maven 插件,这个插件在应用编译构建时将执行。当然,也需要添加 spring-boot-maven-plugin 插件,这个插件的作用时通过 Maven 来编译构建和运行 Spring Boot 应用。所有相关所需修改都在 trampoline 分支上:https://github.com/piomin/sample-spring-microservices-new/tree/trampoline

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
        </plugin>
    </plugins>
</build>

添加微服务

接下来我们将使用 Trampoline Web 控制台进行配置,首先,在 SETTINGS 区域,需要注册每个微服务的实例,可以注册的方式有:

由于我已经将微服务应用源代码克隆到本地工作目录,因此我将选用以上方式的第三种。在注册微服务表单中,必须要填写微服务名称、端口、actuator 接口路径,以及默认构建工具和 Maven pom.xml 文件路径。

image.png

要注意的是在设置页面的 Maven 设置区域,配置 Maven 安装目录。在注册完毕所有示例微服务后(config-servicediscovery-servicegateway-service 和三个 Spring Cloud 应用)我们将它们添加到一个组里面。这个是十分有用的特性,这样我们可以一键部署这些微服务。

image.png

下面是我们在 Trampoline 里注册服务列表:

image.png

管理微服务

现在,我们访问下 INSTANCES 页面,我们可以启动一个微服务实例或是一个组的微服务。如果你想启动一个微服务实例,就从列表页面选择它然后点击启动,将立马开启一个新的命令窗口,从源代码编译构建应用并在指定端口进行启动。

image.png

下面是运行中的微服务列表。可以看到应用的 HTTP 端口和运行状态。可以通过点击日志、统计或追踪按钮查看详细信息。

image.png

下面是关于 discovery-service 的最后一次提交信息。

image.png

如果你决定重启一个应用,Trampoline 将向 /shutdown 接口发送请求,然后重新从最新的源代码编译构建微服务应用并运行。另外,你可以使用 Spring Boot Devtool,强制在代码变更后会进行重启操作。由于 Trampoline 会通过 actuator 接口持续监控所有注册的应用,因此还是可以看到所有运行中微服务的状态。

上一篇下一篇

猜你喜欢

热点阅读