聊聊Spring Cloud Cli 初体验

 更新时间:2018年04月04日 11:15:04   转载 作者:polly  
这篇文章主要介绍了聊聊Spring Cloud Cli 初体验,SpringBoot CLI 是spring Boot项目的脚手架工具。非常具有实用价值,需要的朋友可以参考下

SpringBoot CLI 是spring Boot项目的脚手架工具。而本文的Spring Cloud cli则是基于SpringBoot Client的一个插件,用于支持Cloud相关的组件。

由于各种原因,目前用起来并不是很爽:

  1. repo 经常连不上
  2. 启动非常慢,要等半天
  3. 遇到问题排查不是很容易

但是,功能很有意思,值得期待。也许有一天变的像 docker swarm 那样直接启动分布式的服务,就完美了。

SpringBoot Client文档: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-installing-the-cli

SpringCLoud Client 文档: http://cloud.spring.io/spring-cloud-static/spring-cloud-cli/1.3.2.RELEASE/

组件仓库:https://repo.spring.io/webapp/#/home

安装springboot client

通用的安装方式是下载编译版,设置PATH环境变量即可。

下载如下的二进制包:

https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.5.10.RELEASE/spring-boot-cli-1.5.10.RELEASE-bin.tar.gz

解压并设置环境能量:

tar xvfz spring-boot-cli-1.5.10.RELEASE-bin.tar.gz
cd spring-1.5.10.RELEASE
export PATH=$PATH:$PWD/bin

官网文档还提供了其他sdkman、brew等安装方式,你可能并不是对应的操作系统,也可能没有对应的包管理器。因此个人不建议考虑,直接下载二进制包即可。

安装cloud插件

默认spring命令并没有cloud子命令:

$ spring cloud eureka
'cloud' is not a valid command. See 'help'.

安装spring cloud插件:

spring install org.springframework.cloud:spring-cloud-cli:1.4.1.BUILD-SNAPSHOT

默认插件会安装在cli目录的/lib/ext 子目录中。

查看cloud子命令目前支持的组件:

$ spring cloud --list
configserver dataflow eureka h2 hystrixdashboard kafka stubrunner zipkin

命令会实时查询 http://repo.spring.io ,如果连接不上,悲催了。

启动组件

在开发环境可快速启动一个Eureka注册中心:

$ spring cloud eureka

默认的端口是8761,访问测试地址查看是否成功启动:http://localhost:8761

如果启动多个组件,直接写多个组件名称即可。如:

$ spring cloud eureka configserver h2 kafka zipkin

https://spring.io/blog/2016/11/02/introducing-the-spring-cloud-cli-launcher

各个服务默认的端口:

  1. eureka http://localhost:8761
  2. configserver http://localhost:8888
  3. h2 http://localhost:9095 (console), jdbc:h2:tcp://localhost:9096/{data}
  4. kafka http://localhost:9091 (actuator endpoints), localhost:9092
  5. hystrixdashboard http://localhost:7979
  6. dataflow http://localhost:9393
  7. zipkin http://localhost:9411

在独立进程中启动

默认情况下,同事时启动多个组件时,会在同一个进程中启动所有组件。即:

spring cloud --deployer=thin

如果你希望你在一个独立的进程中启动每一个组件,可以如下启动:

spring cloud --deployer=local

应用profile

如果定义了profile,可以在启动时指定激活的profile,如內建configserver配置了一个rabbit profile,用于设置启用rabbit代替kafka。具体可查看源码:

https://github.com/spring-cloud/spring-cloud-cli/blob/master/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/cloud.yml

启动方式:

spring cloud configserver -p rabbit

修改组件配置

如果希望定制某个组件的参数,可以创建一个配置文件,目录可以是:

  1. 工作目录
  2. 工作目录中的 config/
  3. 用户目录中的 ~/.spring-cloud/

配置文件名为组件名,如: eureka.yml。 比如我们希望eureka的端口号为:1111,则创建 eureka.properties:

server:
 port: 1111

注意:文件扩展名必须是yml,不支持properties。

定制自己的组件

比如我自己创建了一个spring-boot-initializr组件,那么我们也可以把自己的组件加入到配置中,这样也很方便的启动。

在工作目录创建:config/cloud.yml

spring:
 cloud:
  launcher:
   deployables:
    initializr:
     coordinates: com.pollyduan:springInitializr:1.0-M1
     port: 7000
     application-properties:
      server.address: localhost

其中deployables中的属性:initializr 表示自定义组件的名称,coordinates 表示maven坐标,形式看起来是gradle的依赖格式,而 port比较好理解了,就是默认的端口。

检查一下:

$ spring cloud --list
initializr configserver dataflow eureka h2 hystrixdashboard kafka stubrunner zipkin

返回的组件列表里多了一个 initializr,可以启动试一下:

$ spring cloud initializr

访问 http://localhost:7000 检查一下吧。

这里说明一下,配置中的 application-properties 是配置了默认的application的属性,会覆盖原项目中的 application 配置信息。

配置组件小结

因此总结起来,配置一个组件的属性有三中途径:

  1. 在原项目的application中配置;
  2. 在 cloud.yml 重配置;
  3. 在 [module].yml 重配置。

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

相关文章

  • 详解Java中的checked异常和unchecked异常区别

    详解Java中的checked异常和unchecked异常区别

    这篇文章主要介绍了详解Java中的checked异常和unchecked异常区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Java多线程 volatile关键字详解

    Java多线程 volatile关键字详解

    这篇文章主要介绍了Java多线程 volatile关键字详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • SpringBoot环境搭建及第一个程序运行(小白教程)

    SpringBoot环境搭建及第一个程序运行(小白教程)

    这篇文章主要介绍了SpringBoot环境搭建及第一个程序运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java拆箱与装箱实例详解

    Java拆箱与装箱实例详解

    这篇文章主要介绍了Java拆箱与装箱,结合实例形式详细分析了Java拆箱与装箱相关的数据类型转换操作技巧,需要的朋友可以参考下
    2019-11-11
  • Java实现图片倒影的源码实例内容

    Java实现图片倒影的源码实例内容

    在本篇文章里小编给大家整理的是关于Java实现图片倒影的源码以及相关知识点,有需要的朋友们学习下。
    2019-09-09
  • Java String类的常用方法汇总

    Java String类的常用方法汇总

    这篇文章主要为大家详细汇总了Java String类的常用方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • java this super使用方法详解

    java this super使用方法详解

    Java中this、super关键字的用法简单说明:super是Java语言的保留字,用来指向类的超类,本文将详细介绍,需要的朋友可以参考下
    2012-12-12
  • java数学归纳法非递归求斐波那契数列的方法

    java数学归纳法非递归求斐波那契数列的方法

    这篇文章主要介绍了java数学归纳法非递归求斐波那契数列的方法,涉及java非递归算法的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • java环境变量的配置方法图文详解【win10环境为例】

    java环境变量的配置方法图文详解【win10环境为例】

    这篇文章主要介绍了java环境变量的配置方法,结合图文形式详细分析了win10环境下java环境变量的配置方法与相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • Java测试题 实现一个注册功能过程解析

    Java测试题 实现一个注册功能过程解析

    这篇文章主要介绍了Java测试题 实现一个注册功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10

最新评论