聊聊Spring Cloud Cli 初體驗(yàn)
SpringBoot CLI 是spring Boot項(xiàng)目的腳手架工具。而本文的Spring Cloud cli則是基于SpringBoot Client的一個(gè)插件,用于支持Cloud相關(guān)的組件。
由于各種原因,目前用起來并不是很爽:
- repo 經(jīng)常連不上
- 啟動(dòng)非常慢,要等半天
- 遇到問題排查不是很容易
但是,功能很有意思,值得期待。也許有一天變的像 docker swarm 那樣直接啟動(dòng)分布式的服務(wù),就完美了。
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/
組件倉(cāng)庫(kù):https://repo.spring.io/webapp/#/home
安裝springboot client
通用的安裝方式是下載編譯版,設(shè)置PATH環(huán)境變量即可。
下載如下的二進(jìn)制包:
解壓并設(shè)置環(huán)境能量:
tar xvfz spring-boot-cli-1.5.10.RELEASE-bin.tar.gz cd spring-1.5.10.RELEASE export PATH=$PATH:$PWD/bin
官網(wǎng)文檔還提供了其他sdkman、brew等安裝方式,你可能并不是對(duì)應(yīng)的操作系統(tǒng),也可能沒有對(duì)應(yīng)的包管理器。因此個(gè)人不建議考慮,直接下載二進(jìn)制包即可。
安裝cloud插件
默認(rèn)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
默認(rèn)插件會(huì)安裝在cli目錄的/lib/ext 子目錄中。
查看cloud子命令目前支持的組件:
$ spring cloud --list configserver dataflow eureka h2 hystrixdashboard kafka stubrunner zipkin
命令會(huì)實(shí)時(shí)查詢 http://repo.spring.io ,如果連接不上,悲催了。
啟動(dòng)組件
在開發(fā)環(huán)境可快速啟動(dòng)一個(gè)Eureka注冊(cè)中心:
$ spring cloud eureka
默認(rèn)的端口是8761,訪問測(cè)試地址查看是否成功啟動(dòng):http://localhost:8761
如果啟動(dòng)多個(gè)組件,直接寫多個(gè)組件名稱即可。如:
$ spring cloud eureka configserver h2 kafka zipkin
https://spring.io/blog/2016/11/02/introducing-the-spring-cloud-cli-launcher
各個(gè)服務(wù)默認(rèn)的端口:
- eureka http://localhost:8761
- configserver http://localhost:8888
- h2 http://localhost:9095 (console), jdbc:h2:tcp://localhost:9096/{data}
- kafka http://localhost:9091 (actuator endpoints), localhost:9092
- hystrixdashboard http://localhost:7979
- dataflow http://localhost:9393
- zipkin http://localhost:9411
在獨(dú)立進(jìn)程中啟動(dòng)
默認(rèn)情況下,同事時(shí)啟動(dòng)多個(gè)組件時(shí),會(huì)在同一個(gè)進(jìn)程中啟動(dòng)所有組件。即:
spring cloud --deployer=thin
如果你希望你在一個(gè)獨(dú)立的進(jìn)程中啟動(dòng)每一個(gè)組件,可以如下啟動(dòng):
spring cloud --deployer=local
應(yīng)用profile
如果定義了profile,可以在啟動(dòng)時(shí)指定激活的profile,如內(nèi)建configserver配置了一個(gè)rabbit profile,用于設(shè)置啟用rabbit代替kafka。具體可查看源碼:
啟動(dòng)方式:
spring cloud configserver -p rabbit
修改組件配置
如果希望定制某個(gè)組件的參數(shù),可以創(chuàng)建一個(gè)配置文件,目錄可以是:
- 工作目錄
- 工作目錄中的 config/
- 用戶目錄中的 ~/.spring-cloud/
配置文件名為組件名,如: eureka.yml。 比如我們希望eureka的端口號(hào)為:1111,則創(chuàng)建 eureka.properties:
server: port: 1111
注意:文件擴(kuò)展名必須是yml,不支持properties。
定制自己的組件
比如我自己創(chuàng)建了一個(gè)spring-boot-initializr組件,那么我們也可以把自己的組件加入到配置中,這樣也很方便的啟動(dòng)。
在工作目錄創(chuàng)建: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坐標(biāo),形式看起來是gradle的依賴格式,而 port比較好理解了,就是默認(rèn)的端口。
檢查一下:
$ spring cloud --list initializr configserver dataflow eureka h2 hystrixdashboard kafka stubrunner zipkin
返回的組件列表里多了一個(gè) initializr,可以啟動(dòng)試一下:
$ spring cloud initializr
訪問 http://localhost:7000 檢查一下吧。
這里說明一下,配置中的 application-properties 是配置了默認(rèn)的application的屬性,會(huì)覆蓋原項(xiàng)目中的 application 配置信息。
配置組件小結(jié)
因此總結(jié)起來,配置一個(gè)組件的屬性有三中途徑:
- 在原項(xiàng)目的application中配置;
- 在 cloud.yml 重配置;
- 在 [module].yml 重配置。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- spring cloud如何修復(fù)zuul跨域配置異常的問題
- 最簡(jiǎn)單的Spring Cloud教程第一篇:服務(wù)的注冊(cè)與發(fā)現(xiàn)(Eureka)
- spring cloud 之 Feign 使用HTTP請(qǐng)求遠(yuǎn)程服務(wù)的實(shí)現(xiàn)方法
- SpringCloud實(shí)戰(zhàn)小貼士之Zuul的路徑匹配
- 使用Spring Cloud Feign上傳文件的示例
- 利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由示例代碼
- 詳解利用SpringCloud搭建一個(gè)最簡(jiǎn)單的微服務(wù)框架
- Spring Cloud重試機(jī)制與各組件的重試總結(jié)
相關(guān)文章
SpringBoot開發(fā)技巧啟動(dòng)時(shí)配置校驗(yàn)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了SpringBoot開發(fā)在啟動(dòng)時(shí)自動(dòng)配置校驗(yàn)的實(shí)現(xiàn)示例及原理解析,有需要的朋友可以借鑒參考下希望能夠有所幫助2021-10-10Java并發(fā)編程之ConcurrentLinkedQueue隊(duì)列詳情
這篇文章主要介紹了Java并發(fā)編程之ConcurrentLinkedQueue隊(duì)列詳情,ConcurrentLinkedQueue?內(nèi)部的隊(duì)列使用單向鏈表方式實(shí)現(xiàn),下文更多相關(guān)內(nèi)容敘述需要的小伙伴可以參考一下2022-04-04基于Java反射的map自動(dòng)裝配JavaBean工具類設(shè)計(jì)示例代碼
這篇文章主要給大家介紹了關(guān)于基于Java反射的map自動(dòng)裝配JavaBean工具類設(shè)計(jì)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2018-10-10SpringCloud Config使用本地倉(cāng)庫(kù)及map注入
這篇文章主要介紹了SpringCloud Config使用本地倉(cāng)庫(kù)及map注入,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java設(shè)計(jì)模式之建造者模式實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-09-09SpringBoot集成Druid監(jiān)控頁(yè)面最小化配置操作
這篇文章主要介紹了SpringBoot集成Druid監(jiān)控頁(yè)面最小化配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Maven中Could not find artifact XXXX的錯(cuò)誤解決
本文主要介紹了Maven中Could not find artifact XXXX的錯(cuò)誤解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03