Spring Cloud CLI簡(jiǎn)單介紹
1.簡(jiǎn)介
在本文中,我們將介紹Spring Boot Cloud CLI(或簡(jiǎn)稱(chēng)Cloud CLI)。該工具為Spring Boot CLI提供了一組命令行增強(qiáng)功能,有助于進(jìn)一步抽象和簡(jiǎn)化Spring Cloud部署。
CLI于2016年底推出,允許使用命令行、.yml配置文件和Groovy腳本快速自動(dòng)配置和部署標(biāo)準(zhǔn)Spring Cloud服務(wù)。
2.安裝
Spring Boot Cloud CLI 1.3.x需要Spring Boot CLI 1.5.x,因此請(qǐng)務(wù)必從Maven Central獲取最新版本的Spring Boot CLI (安裝說(shuō)明)以及Maven資源庫(kù)中的最新版本的Cloud CLI (官方Spring存儲(chǔ)庫(kù))!
本文中使用的是spring-boot-cli 1.5.18.RELEASE,spring-cloud-cli 1.3.2.RELEASE。
1、首先安裝Spring Boot CLI并可以使用,驗(yàn)證只需運(yùn)行:
$ spring --version
2、然后安裝最新的穩(wěn)定版Cloud CLI:
$ spring installorg.springframework.cloud:spring-cloud-cli:1.3.2.RELEASE
3、最后驗(yàn)證Cloud CLI:
$ spring cloud --version
可以在官方Cloud CLI 頁(yè)面上找到更多安裝說(shuō)明!
3.默認(rèn)服務(wù)和配置
CLI提供七種核心服務(wù),可以使用單行命令運(yùn)行和部署。
在http://localhost:8888上啟動(dòng)Cloud Config服務(wù)器:
$ spring cloud configserver
http://localhost:8761上啟動(dòng)Eureka服務(wù)器:
$ spring cloud eureka
在http://localhost:9095上啟動(dòng)H2服務(wù)器:
$ spring cloud h2
在http://localhost:9091上啟動(dòng)Kafka服務(wù)器:
$ spring cloud kafka
在http://localhost:9411上啟動(dòng)Zipkin服務(wù)器:
$ spring cloud zipkin
在http://localhost:9393上啟動(dòng)Dataflow服務(wù)器:
$ spring cloud dataflow
在http://localhost:7979上啟動(dòng)Hystrix儀表板:
$ spring cloud hystrixdashboard
列出可部署的應(yīng)用服務(wù):
$ spring cloud --list
幫助命令:
$ spring help cloud
有關(guān)這些命令的更多詳細(xì)信息,請(qǐng)查看官方博客。
4.使用YML自定義云服務(wù)
還可以使用相應(yīng)命名的.yml文件配置可通過(guò)Cloud CLI部署的云服務(wù):
spring: profiles: active: git cloud: config: server: git: uri: https://github.com/spring-cloud-samples/config-repo
這是一個(gè)簡(jiǎn)單的配置文件,我們可以使用它來(lái)啟動(dòng)Cloud Config Server。
上面的例子中,我們指定一個(gè)Git存儲(chǔ)庫(kù)作為URI源,當(dāng)我們發(fā)出'spring cloud configserver'命令時(shí),它將被自動(dòng)克隆和部署。
Cloud CLI使用Spring Cloud Launcher。這意味著Cloud CLI支持大多數(shù)Spring Boot配置機(jī)制。這是Spring Boot屬性的官方列表。
Spring Cloud配置符合'spring.cloud … '約定??梢栽诖?a rel="external nofollow" target="_blank" >鏈接中找到Spring Cloud和Spring Config Server的設(shè)置。
我們還可以直接在下面的yml文件中指定幾個(gè)不同的模塊和服務(wù):
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允許通過(guò)使用Maven或Git庫(kù),添加自定義的服務(wù)或模塊。
5.運(yùn)行自定義Groovy腳本
自定義組件可以用Groovy編寫(xiě)并高效部署,因?yàn)镃loud CLI可以編譯和部署Groovy代碼。
這是一個(gè)非常簡(jiǎn)單的REST API實(shí)現(xiàn)示例:
@RestController @RequestMapping('/api') class api { @GetMapping('/get') def get() { [message: 'Hello'] } }
假設(shè)腳本保存為restapi.groovy,我們可以像這樣啟動(dòng)我們的服務(wù):
$ spring run restapi.groovy
訪(fǎng)問(wèn)http://localhost:8080/api/get應(yīng)該顯示:
{"message":"Hello"}
6.加密/解密
Cloud CLI還提供了加密和解密工具(可在org.springframework.cloud.cli.command.*中找到),可以直接通過(guò)命令行使用,也可以通過(guò)將值傳遞給Cloud Config Server端點(diǎn)來(lái)間接使用。
讓我們?cè)O(shè)置它,看看如何使用它。
6.1 安裝
Cloud CLI和Spring Cloud Config Server都使用org.springframework.security.crypto.encrypt.* 來(lái)處理加密和解密的命令。
因此,都需要通過(guò)Oracle提供的JCE Unlimited Strength Extension,可在這里找到。
6.2 命令行加密和解密
要通過(guò)終端加密' my_value ',請(qǐng)調(diào)用:
$ spring encrypt my_value --key my_key
可以使用“@”后跟路徑(通常用于RSA公鑰)代表文件路徑(替換上面的“ my_key ”):
$ spring encrypt my_value --key @${WORKSPACE}/foos/foo.pub
'my_value'現(xiàn)在將被加密為:
c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b
可通過(guò)命令行進(jìn)行解密:
$ spring decrypt --key my_key c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b
我們現(xiàn)在還可以在配置YAML或?qū)傩晕募惺褂眉用苤?,在加載時(shí)它將由Cloud Config Server自動(dòng)解密:
encrypted_credential: "{cipher}c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b"
6.3 使用Config Server加密和解密
Spring Cloud Config Server公開(kāi)RESTful端點(diǎn),其中密鑰和加密值對(duì)可以存儲(chǔ)在Java安全存儲(chǔ)或內(nèi)存中。
有關(guān)如何正確設(shè)置和配置Cloud Config Server以接受對(duì)稱(chēng)或非對(duì)稱(chēng)加密的詳細(xì)信息,請(qǐng)查看官方文檔。
使用“ spring cloud configserver ”命令配置并運(yùn)行Spring Cloud Config Server后,您就可以調(diào)用其API:
$ curl localhost:8888/encrypt-d mysecret //682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda$ curl localhost:8888/decrypt-d 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda //mysecret
7.結(jié)論
我們?cè)谶@里專(zhuān)注于Spring Boot Cloud CLI的介紹。有關(guān)更多的信息,請(qǐng)查看官方文檔。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Spring Cloud Stream使用延遲消息實(shí)現(xiàn)定時(shí)任務(wù)(RabbitMQ)
- spring cloud gateway 限流的實(shí)現(xiàn)與原理
- 詳解Spring Cloud微服務(wù)架構(gòu)下的WebSocket解決方案
- SpringCloud Zuul在何種情況下使用Hystrix及問(wèn)題小結(jié)
- 詳解Spring Cloud Netflix Zuul中的速率限制
- 詳解Spring Cloud Gateway 數(shù)據(jù)庫(kù)存儲(chǔ)路由信息的擴(kuò)展方案
- 詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理
- Spring Cloud Ribbon的踩坑記錄與原理詳析
- 使用Servlet處理一個(gè)上傳的文件
- Servlet+MyBatis項(xiàng)目轉(zhuǎn)Spring Cloud微服務(wù),多數(shù)據(jù)源配置修改建議
相關(guān)文章
ActiveMQ簡(jiǎn)單入門(mén)(新手必看篇)
下面小編就為大家?guī)?lái)一篇ActiveMQ簡(jiǎn)單入門(mén)(新手必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06Java API方式調(diào)用Kafka各種協(xié)議的方法
本篇文章主要介紹了Java API方式調(diào)用Kafka各種協(xié)議的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09高效數(shù)據(jù)傳輸?shù)拿孛芪淦鱌rotobuf的使用教程
Protobuf(Protocol?Buffers)是由?Google?開(kāi)發(fā)的一種輕量級(jí)、高效的數(shù)據(jù)交換格式,它被用于結(jié)構(gòu)化數(shù)據(jù)的序列化、反序列化和傳輸,本文主要介紹了它的具體使用方法,需要的可以參考一下2023-05-05

SpringBoot @Autowired注解注入規(guī)則介紹

Java使用JMeter進(jìn)行高并發(fā)測(cè)試