热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

聊聊SpringCloudCli初体验

这篇文章主要介绍了聊聊SpringCloudCli初体验,SpringBootCLI是springBoot项目的脚手架工具。非常具有实用价值,需要的朋友可以参考下

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 重配置。

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


推荐阅读
  • 在本周的白板演练中,Apache Flink 的 PMC 成员及数据工匠首席技术官 Stephan Ewen 深入探讨了如何利用保存点功能进行流处理中的数据重新处理、错误修复、系统升级和 A/B 测试。本文将详细解释保存点的工作原理及其应用场景。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
author-avatar
0o墨滴成殇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有