前言
成都創(chuàng)新互聯(lián)專注于儀隴網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供儀隴營(yíng)銷型網(wǎng)站建設(shè),儀隴網(wǎng)站制作、儀隴網(wǎng)頁(yè)設(shè)計(jì)、儀隴網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造儀隴網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供儀隴網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
在Spring Cloud構(gòu)建微服務(wù)架構(gòu)中,我們經(jīng)常會(huì)需要啟動(dòng)多個(gè)實(shí)例的情況來(lái)測(cè)試注冊(cè)中心、配置中心等基礎(chǔ)設(shè)施的高可用,也會(huì)用來(lái)測(cè)試客戶端負(fù)載均衡的調(diào)用等。但是,我們一個(gè)應(yīng)用只能有一個(gè)端口號(hào),這就使得在本機(jī)測(cè)試的時(shí)候,不得不為同一個(gè)服務(wù)設(shè)置不同的端口來(lái)進(jìn)行啟動(dòng)。
在本地用不同端口啟動(dòng)同一服務(wù)實(shí)例的方法有很多。最傳統(tǒng)的我們可以粗暴地修改配置文件中的server.port
屬性來(lái)分別啟動(dòng)多個(gè)實(shí)例,這種方法雖然可以實(shí)現(xiàn),但是非常的不方便。比較好的一種方法是在啟動(dòng)的時(shí)候通過(guò)命令的方式為server.port
屬性來(lái)設(shè)置不同的值,這樣我們的配置文件就不用反復(fù)的進(jìn)行修改了。
在本文中,我們將介紹另外一種方法:
采用隨機(jī)端口的方式來(lái)設(shè)置各個(gè)服務(wù)實(shí)例,這樣我們不用去編輯任何命令就可以在本地輕松地啟動(dòng)多個(gè)實(shí)例了。
使用隨機(jī)端口
為Spring Cloud的應(yīng)用實(shí)用隨機(jī)端口非常簡(jiǎn)單,主要有兩種方法:
1、設(shè)置server.port=0,當(dāng)應(yīng)用啟動(dòng)的時(shí)候會(huì)自動(dòng)的分配一個(gè)隨機(jī)端口,但是該方式在注冊(cè)到Eureka的時(shí)候會(huì)一個(gè)問(wèn)題:所有實(shí)例都使用了同樣的實(shí)例名(如:Lenovo-zhaiyc:hello-service:0),這導(dǎo)致只出現(xiàn)了一個(gè)實(shí)例。所以,我們還需要修改實(shí)例ID的定義,讓每個(gè)實(shí)例的ID不同,比如使用隨機(jī)數(shù)來(lái)配置實(shí)例ID:
server.port=0 eureka.instance.instance-id=${spring.application.name}:${random.int}
2、除了上面的方法,實(shí)際上我們還可以直接使用random
函數(shù)來(lái)配置server.port
。這樣就可以指定端口的取值范圍,比如:
server.port=${random.int[10000,19999]}
由于默認(rèn)的實(shí)例ID會(huì)由server.port
拼接,而此時(shí)server.port
設(shè)置的隨機(jī)值會(huì)重新取一次隨機(jī)數(shù),所以使用這種方法的時(shí)候不需要重新定義實(shí)例ID的規(guī)則就能產(chǎn)生不同的實(shí)例ID了。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)站欄目:SpringCloud實(shí)戰(zhàn)技巧之使用隨機(jī)端口
網(wǎng)站地址:http://sd-ha.com/article44/gcjiee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、響應(yīng)式網(wǎng)站、建站公司、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)