Spring Boot CLI 为Spring Cloud提供Spring Boot命令行功能。您可以编写Groovy脚本来运行Spring Cloud组件应用程序(例如@EnableEurekaServer
)。您还可以轻松地执行加密和解密等操作,以支持具有秘密配置值的Spring Cloud Config客户端。使用Launcher CLI,您可以从命令行一次性启动Eureka,Zipkin,Config Server等服务(在开发时非常有用)。
注意
|
Spring Cloud根据非限制性Apache 2.0许可证发布。如果您想为文档的这一部分做出贡献,或者发现错误,请在github中找到项目中的源代码和问题跟踪器。 |
安装
要安装,请确保您有Spring Boot CLI(1.4.4或更好):
$ spring version Spring CLI v1.4.4.RELEASE
例如SDKMan用户
$ sdk install springboot 1.4.4.RELEASE
$ sdk use springboot 1.4.4.RELEASE
并安装Spring Cloud插件
$ mvn install
$ spring install org.springframework.cloud:spring-cloud-cli:1.2.3.RELEASE
重要
|
先决条件:要使用加密和解密功能,您需要在JVM中安装全面的JCE(默认情况下不存在)。您可以从Oracle下载“Java加密扩展(JCE)无限强度管理策略文件”,并按照安装说明(实际上将JRE lib / security目录中的2个策略文件替换为您下载的文件)。 |
在开发中运行Spring Cloud服务
Launcher CLI可以用于从命令行运行像Eureka,Config Server等常用服务。列出您可以执行的可用服务spring cloud --list
,并启动spring cloud
默认服务。要选择要部署的服务,只需在命令行中列出它们,例如
$ spring cloud eureka configserver h2 kafka zipkin
支持的可部署的摘要:
服务 | 名称 | 地址 | 描述 |
---|---|---|---|
eureka |
Eureka Server |
Eureka服务器进行服务注册和发现。所有其他服务默认显示在其目录中。 |
|
configserver |
Config Server |
Spring Cloud Config服务器以“本机”配置文件运行,并从本地目录./launcher提供配置 |
|
h2 |
H2 Database |
http://localhost:9095 (console), jdbc:h2:tcp://localhost:9096/{data} |
关系数据库服务。连接时使用 |
kafka |
Kafka Broker |
http://localhost:9091 (actuator endpoints), localhost:9092 |
|
hystrixdashboard |
Hystrix Dashboard |
任何声明Hystrix断路器的Spring Cloud应用程序都会在 |
|
dataflow |
Dataflow Server |
Spring Cloud数据流服务器,用户名为/ admin-ui。将Dataflow shell以根路径连接到目标。 |
|
zipkin |
Zipkin Server |
Zipkin具有用于可视化跟踪的UI的服务器。存储器将数据跨越内存并通过JSON数据的HTTP POST接受它们。 |
可以使用相同名称的本地YAML文件(在当前工作目录或名为“config”或~/.spring-cloud
)的子目录中配置这些应用程序。例如,在configserver.yml
中,您可能需要执行此操作来定位后端的本地git存储库:
spring:
profiles:
active: git
cloud:
config:
server:
git:
uri: file://${user.home}/dev/demo/config-repo
添加其他应用程序
其他应用可以添加到./config/cloud.yml
(不是./config.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 zipkin
(注意列表开头附加的应用程序)。
编写Groovy脚本和运行应用程序
Spring Cloud CLI支持大部分Spring Cloud声明性功能,例如@Enable*
注解类。例如,这是一个功能齐全的Eureka服务器
@EnableEurekaServer
class Eureka {}
你可以从这样的命令行运行它
$ spring run app.groovy
要包括额外的依赖关系,通常只需添加适当的特征启用注释即可,例如@EnableConfigServer
,@EnableOAuth2Sso
或@EnableEurekaClient
。要手动包含一个依赖关系,您可以使用特殊的“Spring Boot”短样式工件坐标(即仅使用工件ID(不需要组或版本信息))的@Grab
,例如设置客户端应用程序在AMQP上聆听Spring CLoud Bus的管理事件:
@Grab('spring-cloud-starter-bus-amqp')
@RestController
class Service {
@RequestMapping('/')
def home() { [message: 'Hello'] }
}
加密和解密
Spring Cloud CLI附带一个“encrypt”和“decrypt”命令。两个接受以指定为强制“ - ”的键的相同形式的参数,例如
$ spring encrypt mysecret --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda $ spring decrypt --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda mysecret
要在文件中使用密钥(例如,用于encyption的RSA公钥),使用“@”键入键值,并提供文件路径,例如
$ spring encrypt mysecret --key @${HOME}/.ssh/id_rsa.pub AQAjPgt3eFZQXwt8tsHAVv/QHiY5sI2dRcR+...