摘要:最近公司想讓我看看微服務(wù)正好我也想看看新東西,天天解決業(yè)務(wù)問(wèn)題。。。當(dāng)時(shí)我有點(diǎn)懵逼,說(shuō)好的很好操作的呢沒(méi)辦法,我只有去百度了哈,看了很多文章,基本所有文章說(shuō)的都是差不太多,但是這個(gè)差不太多又都沒(méi)有說(shuō)清楚到底怎么玩。。。
最近公司想讓我看看微服務(wù)
正好我也想看看新東西,天天解決業(yè)務(wù)問(wèn)題。。。太沒(méi)有激情了。。。而且我們大多應(yīng)用都還是springmvc,springboot的應(yīng)用都很少,只有幾個(gè),唉,我也是深陷業(yè)務(wù)問(wèn)題中
Spring Cloud也算是一個(gè)全家桶吧,里面東西也多,不過(guò)從感覺(jué)開箱即用的原則來(lái)看,用起來(lái)也比較順手,demo也都很好搭建,
從開始的網(wǎng)關(guān)+服務(wù)的著手,網(wǎng)關(guān)我采用的Zuul,服務(wù)治理采用的eureka,后面想用spring cloud config作為配置中心,但是還要自己搭一個(gè)server很是麻煩。。。我也懶。。。無(wú)意聽(tīng)同事說(shuō),其實(shí)全家桶里服務(wù)治理可以用spring cloud consul,而consul就自帶一個(gè)配置功能,于是我去了解了spring cloud consul config
spring cloud consul config本身依賴spring cloud consul的agent server,所以只要agent server啟動(dòng)了,其實(shí)就相當(dāng)于有了一個(gè)server來(lái)做配置,我滿心歡喜的把服務(wù)治理eureka改為spring cloud consul,嗖嗖兩下,spring cloud consul也配置好了
命令行里執(zhí)行了,啟動(dòng)測(cè)試模式的agent server
consul agent -dev
打開localhost:8500, 很明顯有了一個(gè)類似配置中心的菜單
點(diǎn)開進(jìn)去啥也沒(méi)有。。。只有右邊一個(gè)創(chuàng)建按鈕
也沒(méi)灰心,我先是去官網(wǎng)介紹看了看 官網(wǎng)鏈接描述
我承認(rèn)我英語(yǔ)是差了。。。看了半天,我真是沒(méi)看明白怎么使用。。。當(dāng)時(shí)我有點(diǎn)懵逼,說(shuō)好的很好操作的呢
沒(méi)辦法,我只有去百度了哈,看了很多文章,基本所有文章說(shuō)的都是差不太多,但是這個(gè)差不太多又都沒(méi)有說(shuō)清楚到底怎么玩。。。
好吧,這個(gè)時(shí)候我有點(diǎn)承認(rèn)我自己理解能力有點(diǎn)問(wèn)題了,心想既然大家都沒(méi)有說(shuō)清楚,估計(jì)應(yīng)該就是很容易理解,所以大家心照不宣,我又反復(fù)讀了哈官方的描述,并且找了springcloud.cc里的中文說(shuō)明文檔,還是沒(méi)看太懂。。。
當(dāng)時(shí)我真的覺(jué)得有點(diǎn)懵了。。。心想今天算了還是不想這個(gè),明天再想,于是我去把demo的網(wǎng)關(guān)換成了spring cloud gateway,這個(gè)基本沒(méi)有半個(gè)小時(shí)就搞定了,還是比較簡(jiǎn)單的
第二天也就是今天,我再次來(lái)看了哈文檔,百度的幾篇文章除了說(shuō)明了一點(diǎn),要加一個(gè)配置文件bootstrap.yml,這里面要去指定一些spring cloud consul config的一些配置,并且意思感覺(jué)是application.yml里的配置都可以不用寫了,完全維護(hù)在spring cloud consul config里,但是spring cloud consul config到底在哪,我還是無(wú)法把需要配置的屬性,application.yml和consul agent里剛一片空白的配置頁(yè)面,這三者聯(lián)系起來(lái)
終于無(wú)意中,我發(fā)現(xiàn)有一篇文章的一句話讓我警醒了。。。他不是像其他文章說(shuō)一些貌似大家都懂的話,而是非常鄭重了說(shuō)了一句
感覺(jué)這難道也是一個(gè)理解能力和我差不多,但是比我強(qiáng)的人么。。。他這么一句讓我明白,確實(shí)官網(wǎng)說(shuō)的也不太明白,最后那句體會(huì)一下,我再去反復(fù)看了文章,和自己試驗(yàn)。。。
終于懂了。。。懂了之后再回過(guò)頭來(lái)看,spring cloud consul config還是真的真的非常簡(jiǎn)單的。。。其實(shí)就是想要用spring cloud consul config,你要和它的一些約定或者說(shuō)它的規(guī)范匹配起就完事了,剩下就跟普通的配置文件一樣了,接下來(lái)我用我自己的理解來(lái)說(shuō)明哈spring cloud consul config怎么使用,當(dāng)然前提你對(duì)于服務(wù)治理consul有點(diǎn)點(diǎn)了解哈
spring cloud consul config其實(shí)就是一個(gè)服務(wù)的配置中心,配置統(tǒng)一管理的地方,你哪個(gè)服務(wù)需要這個(gè)配置中心,你就在那個(gè)服務(wù)里加上依賴
org.springframework.cloud spring-cloud-starter-consul-config
之后在該服務(wù)的resources目錄下新增一個(gè)bootstrap.yml文件,里面加上這些就夠了
spring: cloud: consul: config: format: yaml default-context: gateway
format默認(rèn)是key_value的形式,但是我現(xiàn)在很喜歡用yaml形式的配置文件,default-context根據(jù)你的應(yīng)用取吧,類似與spring.application.name屬性一樣,區(qū)分服務(wù)的
完事之后,在consul agent剛那個(gè)頁(yè)面里創(chuàng)建一個(gè)目錄,對(duì),是目錄,目錄名一定要像這樣config/gateway/data
也就是config和data目錄都是默認(rèn)值,你沒(méi)有配置的時(shí)候,就不用管,但是你必須這么寫,中間那個(gè)gateway就是剛那個(gè) default-context,這樣consul agent頁(yè)面和bootstrap.xml就映射起來(lái)了,接下來(lái)你就可以在下面的value里像yaml文件一下寫配置了
當(dāng)然你想改目錄的兩個(gè)默認(rèn)值,你就可以這么修改了,對(duì)應(yīng)prefix和data-key,把默認(rèn)值寫出來(lái)就一眼清楚了
spring: cloud: consul: config: format: yaml default-context: gateway prefix: config data-key: data
所以還是簡(jiǎn)單的,當(dāng)然還有個(gè)問(wèn)題,要是多個(gè)環(huán)境的不同配置怎么來(lái)的,嘿嘿,這是個(gè)關(guān)鍵問(wèn)題,因?yàn)檫@個(gè)處理,讓我實(shí)在沒(méi)有想到,一般我們不用配置中心的時(shí)候,在工程里配置,可以按照application-test.yml和application-prod.yml來(lái)區(qū)分環(huán)境,這個(gè)spring cloud consul config也是可以的,不過(guò)不是創(chuàng)建config/gateway/data/test,亦或是config/gateway/data/prod這種。。。天真
特么竟然是config/gateway,test/data和config/gateway,data/data,沒(méi)錯(cuò),你沒(méi)有看錯(cuò),服務(wù)名和環(huán)境中間用逗號(hào)分開。。。而且這個(gè)中間分隔符逗號(hào)還是支持可配。。。默認(rèn)是逗號(hào)。。。你還可以用屬性profile-separator進(jìn)行修改
spring: cloud: consul: config: format: yaml default-context: gateway prefix: config data-key: data profile-separator: ","
可能我是一個(gè)比較傳統(tǒng)的程序猿。。。這種逗號(hào)分開的目錄命名方式對(duì)我來(lái)說(shuō)還是有點(diǎn)沖擊的。。。再回過(guò)頭看官方的文檔,也算是有點(diǎn)明白了。。。真的還是我的理解能力太差
總得來(lái)說(shuō)也是怪自己太著急了。。。之前幾個(gè)開箱即用的把自己搞的浮躁了點(diǎn)。。其實(shí)仔細(xì)看文檔還是能看明白的。。。最后你可以像平常寫配置文件一下,這么根據(jù)環(huán)境來(lái)配置了
總結(jié)哈:戒驕戒躁吧。。。文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74611.html
摘要:可簡(jiǎn)單地認(rèn)為它是的擴(kuò)展,負(fù)載均衡自然成為不可或缺的特性。類似的特性在項(xiàng)目也有體現(xiàn),它是另一種高性能代理的方案,提供服務(wù)發(fā)現(xiàn)健康和負(fù)載均衡。 Dubbo Cloud Native 實(shí)踐與思考 分享簡(jiǎn)介 Cloud Native 應(yīng)用架構(gòu)隨著云技術(shù)的發(fā)展受到業(yè)界特別重視和關(guān)注,尤其是 CNCF(Cloud Native Computing Foundation)項(xiàng)目蓬勃發(fā)展之際。Dubbo...
摘要:下一篇介紹基于的服務(wù)注冊(cè)與調(diào)用。服務(wù)提供者工程配置這里服務(wù)提供者是使用之前進(jìn)階教程第三篇整合連接池以及監(jiān)控改造而來(lái),這里一樣的部分就不再重復(fù)說(shuō)明,下面將說(shuō)明新增的部分。 Spring Cloud簡(jiǎn)介 Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中涉及的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競(jìng)選、分...
摘要:在我們的文檔中,我們使用來(lái)表明就選舉和事務(wù)的順序達(dá)成一致。提供成員關(guān)系,故障檢測(cè)和事件廣播。這是一個(gè)允許請(qǐng)求的請(qǐng)求響應(yīng)機(jī)制。這包括服務(wù)發(fā)現(xiàn),還包括豐富的運(yùn)行狀況檢查,鎖定,鍵值,多數(shù)據(jù)中心聯(lián)合,事件系統(tǒng)和。 轉(zhuǎn)載請(qǐng)標(biāo)明出處: http://blog.csdn.net/forezp/a...本文出自方志朋的博客 什么是Consul Consul是HashiCorp公司推出的開源軟件,使...
閱讀 1964·2021-09-07 09:59
閱讀 2528·2019-08-29 16:33
閱讀 3701·2019-08-29 16:18
閱讀 2860·2019-08-29 15:30
閱讀 1687·2019-08-29 13:52
閱讀 2050·2019-08-26 18:36
閱讀 544·2019-08-26 12:19
閱讀 707·2019-08-23 15:23