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

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

image.png

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

工作原理

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

  • 启动应用:通过运行 Maven Spring Boot 插件命令 mvn spring-boot:run 来编译源代码和运行应用;
  • 关闭应用:通过调用 Spring Boot Actuator /shutdown 接口来进行应用关闭操作;
  • 监控应用:从 Spring Boot Actuator 接口来获取监控数据并进行展现,例如日志、度量统计和 Git 提交信息。

设置

首先,我们需要从 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 区域,需要注册每个微服务的实例,可以注册的方式有:

  • 外部-已经在运行的应用:提供 IP 地址和 HTTP 端口;
  • 微服务应用的 Git 仓库:提供 Git URL 克隆到本地;
  • 微服务应用的 Git 仓库:已克隆至本地的,提供目录地址。

由于我已经将微服务应用源代码克隆到本地工作目录,因此我将选用以上方式的第三种。在注册微服务表单中,必须要填写微服务名称、端口、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 接口持续监控所有注册的应用,因此还是可以看到所有运行中微服务的状态。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容