共计 3519 个字符,预计需要花费 9 分钟才能阅读完成。
导读
在日常开发与测试中有一些 Spring Cloud 的相关的组件如 eureka、configserver、zipkin、hystrixdashboard 等相对来说不容易发生变动,这里就介绍一种 Spring 官方为我们提供的开箱即用的 Spring Boot Cloud CLI 只需要一条命令就可以启动这些相关的组件服务。
Spring Boot Cloud CLI 是什么?
Spring Boot Cloud CLI 官方是这样描述的:
Spring Boot CLI provides Spring Boot command line features for Spring Cloud. You can write Groovy scripts to run Spring Cloud component applications (e.g. @EnableEurekaServer). You can also easily do things like encryption and decryption to support Spring Cloud Config clients with secret configuration values. With the Launcher CLI you can launch services like Eureka, Zipkin, Config Server conveniently all at once from the command line (very useful at development time).
翻译之后:
Springbootcli 为 SpringCloud 提供了 Springboot 命令行功能。您可以编写 groovy 脚本来运行 Spring Cloud 组件应用程序(例如 @enableurekaserver)。您还可以轻松地执行加密和解密等操作,以支持具有机密配置值的 SpringCloud 配置客户机。使用启动器 cli,您可以从命令行方便地同时启动诸如 eureka、zipkin、config server 等服务(在开发时非常有用)。
Spring Boot Cloud CLI 如何使用?
官方提供的最新版本是 2.2.0.BUILD-SNAPSHOT,由于版本依赖的问题在运行时出了一些问题,然后将版本改为了:
- Spring CLI v1.5.18.RELEASE 点击下载 更多版本查看
- Spring Cloud CLI v1.3.2.RELEASE
1、安装:
1.1 需要先安装 Spring CLI
已 liunx 为例:
首先将刚才下载的 Spring CLI v1.5.18.RELEASE 解压,然后命令设置如下:
export PATH=${PATH}:/spring-boot-cli-1.5.18.RELEASE/bin
windows:
set PATH=D:\spring-boot-cli-1.5.18.RELEASE\bin;%PATH%
更多安装方式参考官方文档
检查是否安装成功:
spring --version
1.2 安装 Spring Cloud CLI
命令如下:
spring install org.springframework.cloud:spring-cloud-cli:1.3.2.RELEASE
检查是否安装成功:
spring cloud --version
2、运行服务
在开发中运行 Spring Cloud Services。
Launcher CLI 可用于从命令行运行 Eureka,Config Server 等常用服务。列出您可以执行的可用服务 spring cloud –list,并仅启动一组默认服务 spring cloud。要选择要部署的服务,只需在命令行中列出它们,例如:
spring cloud eureka configserver h2 zipkin
支持的可部署的服务摘要:
Service | Name | Address | Description |
---|---|---|---|
eureka | Eureka Server | http://localhost:8761 | Eureka 服务器用于服务注册和发现 |
configserver | Config Server | http://localhost:8888 | 配置服务并从本地目录./launcher 提供配置 |
h2 | H2 Database | http://localhost:9095 (console), jdbc:h2:tcp://localhost:9096/{data} | h2 数据库 |
kafka | Kafka Broker | http://localhost:9091 (actuator endpoints), localhost:9092 | |
hystrixdashboard | Hystrix Dashboard | http://localhost:7979 | 断路器 |
dataflow | Dataflow Server | http://localhost:9393 | |
zipkin | Zipkin Server | http://localhost:9411 | 用于可视化跟踪 |
stubrunner | Stub Runner Boot | http://localhost:8750 |
获取帮助
spring help cloud
可以使用具有相同名称的本地 YAML 文件(在当前工作目录或名为“config”或其中的子目录)中配置这些应用程序中的每一个~/.spring-cloud。例如,configserver.yml 你可能想做这样的事情来为后端找到一个本地 git 存储库:
configserver.yml
spring:
profiles:
active: git
cloud:
config:
server:
git:
uri: file://${user.home}/dev/demo/config-repo
3、添加其他应用
可以在./config 目录下添加自己定义的程序,例如:
./config/my-cloud.yml
spring:
cloud:
launcher:
deployables:
source:
coordinates: maven://com.example:source:0.0.1-SNAPSHOT
port: 7000
sink:
coordinates: maven://com.example:sink:0.0.1-SNAPSHOT
port: 7001
当您使用
spring cloud --list
即可列出应用
source sink configserver dataflow eureka h2 hystrixdashboard kafka stubrunner zipkin
4、编写 Groovy 脚本和运行应用程序
Spring Cloud CLI 支持大多数 Spring Cloud 声明性功能,例如 @Enable* 注释类。例如,这是一个功能齐全的 Eureka 服务器
app.groovy
@EnableEurekaServer
class Eureka {}
您可以从命令行运行,如下所示
spring run app.groovy
要包含其他依赖项,通常只需添加适当的启用特征的注释即可,例如 @EnableConfigServer,@EnableOAuth2Sso 或 @EnableEurekaClient。要手动包含依赖项,您可以使用 @Grab 特殊的“Spring Boot”短样式工件坐标,即只使用工件 ID(不需要组或版本信息),例如设置客户端应用程序以侦听 AMQP 来自 Spring CLoud Bus 的管理活动:
app.groovy
@Grab('spring-cloud-starter-bus-amqp')
@RestController
class Service {@RequestMapping('/')
def home() { [message: 'Hello'] }
}
5、加密和解密
Spring Cloud CLI 附带“加密”和“解密”命令。两者都接受相同形式的参数,并将键指定为必需的“–key”,例如
$ spring encrypt mysecret --key foo
682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
$ spring decrypt --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
mysecret
要在文件中使用密钥(例如,用于加密的 RSA 公钥),请在密钥值前加上“@”并提供文件路径,例如
$ spring encrypt mysecret --key @ $ {HOME}
/.ssh / id_rsa.pub AQAjPgt3eFZQXwt8tsHAVv / QHiY5sI2dRcR + ...
参考资料
getting-started-installing-the-cli
Spring Boot Cloud CLI