服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - Spring Cloud CLI简单介绍

Spring Cloud CLI简单介绍

2021-06-23 14:14peterwanghao Java教程

本文我们将介绍Spring Boot Cloud CLI(或简称Cloud CLI)。该工具为Spring Boot CLI提供了一组命令行增强功能,有助于进一步抽象和简化Spring Cloud部署。感兴趣的小伙伴们可以参考一下

1.简介

在本文中,我们将介绍spring boot cloud cli(或简称cloud cli)。该工具为spring boot cli提供了一组命令行增强功能,有助于进一步抽象和简化spring cloud部署。

cli于2016年底推出,允许使用命令行、.yml配置文件和groovy脚本快速自动配置和部署标准spring cloud服务。

2.安装

Spring Boot Cloud CLI 1.3.x需要Spring Boot CLI 1.5.x,因此请务必从Maven Central获取最新版本的Spring Boot CLI (安装说明)以及Maven资源库中的最新版本的Cloud CLI (官方Spring存储库)!

本文中使用的是spring-boot-cli 1.5.18.release,spring-cloud-cli 1.3.2.release。

1、首先安装spring boot cli并可以使用,验证只需运行:

?
1
$ spring --version

2、然后安装最新的稳定版cloud cli:

?
1
$ spring installorg.springframework.cloud:spring-cloud-cli:1.3.2.release

3、最后验证cloud cli:

?
1
$ spring cloud --version

可以在官方cloud cli 页面上找到更多安装说明!

3.默认服务和配置

cli提供七种核心服务,可以使用单行命令运行和部署。

在http://localhost:8888上启动cloud config服务器:

?
1
$ spring cloud configserver

http://localhost:8761上启动eureka服务器:

?
1
$ spring cloud eureka

在http://localhost:9095上启动h2服务器:

?
1
$ spring cloud h2

在http://localhost:9091上启动kafka服务器:

?
1
$ spring cloud kafka

在http://localhost:9411上启动zipkin服务器:

?
1
$ spring cloud zipkin

在http://localhost:9393上启动dataflow服务器:

?
1
$ spring cloud dataflow

在http://localhost:7979上启动hystrix仪表板:

?
1
$ spring cloud hystrixdashboard

列出可部署的应用服务:

?
1
$ spring cloud --list

帮助命令:

?
1
$ spring help cloud

有关这些命令的更多详细信息,请查看官方博客

4.使用yml自定义云服务

还可以使用相应命名的.yml文件配置可通过cloud cli部署的云服务:

?
1
2
3
4
5
6
7
8
spring:
 profiles:
 active: git
 cloud:
 config:
  server:
  git:
   uri: https://github.com/spring-cloud-samples/config-repo

这是一个简单的配置文件,我们可以使用它来启动cloud config server。

上面的例子中,我们指定一个git存储库作为uri源,当我们发出'spring cloud configserver'命令时,它将被自动克隆和部署。

cloud cli使用spring cloud launcher。这意味着cloud cli支持大多数spring boot配置机制。这是spring boot属性的官方列表

spring cloud配置符合'spring.cloud … '约定。可以在此链接中找到spring cloud和spring config server的设置。

我们还可以直接在下面的yml文件中指定几个不同的模块和服务:

?
1
2
3
4
5
6
7
8
9
10
11
12
spring:
 cloud:
 launcher:
  deployables:
  - name: configserver
   coordinates: maven://...:spring-cloud-launcher-configserver:1.3.2.release
   port: 8888
   waituntilstarted: true
   order: -10
  - name: eureka
   coordinates: maven:/...:spring-cloud-launcher-eureka:1.3.2.release
   port: 8761

该yml允许通过使用maven或git库,添加自定义的服务或模块。

5.运行自定义groovy脚本

自定义组件可以用groovy编写并高效部署,因为cloud cli可以编译和部署groovy代码。

这是一个非常简单的rest api实现示例:

?
1
2
3
4
5
6
@restcontroller
@requestmapping('/api')
class api {
 @getmapping('/get')
 def get() { [message: 'hello'] }
}

假设脚本保存为restapi.groovy,我们可以像这样启动我们的服务:

?
1
$ spring run restapi.groovy

访问http://localhost:8080/api/get应该显示:

{"message":"hello"}

6.加密/解密

cloud cli还提供了加密和解密工具(可在org.springframework.cloud.cli.command.*中找到),可以直接通过命令行使用,也可以通过将值传递给cloud config server端点来间接使用。

让我们设置它,看看如何使用它。

6.1 安装

cloud cli和spring cloud config server都使用org.springframework.security.crypto.encrypt.* 来处理加密和解密的命令。

因此,都需要通过oracle提供的jce unlimited strength extension,可在这里找到。

6.2 命令行加密和解密

要通过终端加密' my_value ',请调用:

?
1
$ spring encrypt my_value --key my_key

可以使用“@”后跟路径(通常用于rsa公钥)代表文件路径(替换上面的“ my_key ”):

?
1
$ spring encrypt my_value --key @${workspace}/foos/foo.pub

'my_value'现在将被加密为:

?
1
c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b

可通过命令行进行解密:

?
1
$ spring decrypt --key my_key c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b

我们现在还可以在配置yaml或属性文件中使用加密值,在加载时它将由cloud config server自动解密:

?
1
encrypted_credential: "{cipher}c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b"

6.3 使用config server加密和解密

spring cloud config server公开restful端点,其中密钥和加密值对可以存储在java安全存储或内存中。

有关如何正确设置和配置cloud config server以接受对称或非对称加密的详细信息,请查看官方文档。

使用“ spring cloud configserver ”命令配置并运行spring cloud config server后,您就可以调用其api:

?
1
2
3
4
$ curl localhost:8888/encrypt-d mysecret
//682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda$
curl localhost:8888/decrypt-d 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
//mysecret

7.结论

我们在这里专注于spring boot cloud cli的介绍。有关更多的信息,请查看官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/peterwanghao/article/details/85144526

延伸 · 阅读

精彩推荐
  • Java教程JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例

    本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 ...

    meimao52113422020-08-29
  • Java教程java实现的连接数据库及模糊查询功能示例

    java实现的连接数据库及模糊查询功能示例

    这篇文章主要介绍了java实现的连接数据库及模糊查询功能,结合实例形式分析了java基于jdbc连接数据库及使用LIKE语句实现模糊查询功能的相关操作技巧,需要...

    别先生7692021-03-13
  • Java教程Java 逻辑运算符中与&,||与|的区别

    Java 逻辑运算符中与&,||与|的区别

    这篇文章主要介绍了Java中&&与&,||与|的区别的相关资料,需要的朋友可以参考下...

    qq_378105943802020-10-22
  • Java教程java分割文本字符串的方法

    java分割文本字符串的方法

    这篇文章主要为大家详细介绍了java分割文本字符串的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    一只笨笨鸟1842020-11-24
  • Java教程centos上安装配置java WEB环境

    centos上安装配置java WEB环境

    前提是centos6.3系统已经安装好,在这里以64位系统为例,下面是jdk,tomcat,mysql下载安装步骤,有需要的小伙伴可以参考下 ...

    wanggangjia2012020-06-21
  • Java教程详解Java中类的加载顺序

    详解Java中类的加载顺序

    Java中什么时候类加载,第一次需要使用类信息时加载。类加载的原则:延迟加载,能不加载就不加载。下面这篇文章主要介绍了Java中类的加载顺序,需要的朋...

    刺客XIII5432020-07-25
  • Java教程java导出生成csv文件的方法

    java导出生成csv文件的方法

    这篇文章主要为大家详细介绍了java导出生成csv文件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    FlyHeLanMan5012020-07-25
  • Java教程hadoop是什么语言

    hadoop是什么语言

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算...

    动力节点5282021-01-10