前言
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、大田網(wǎng)站維護(hù)、網(wǎng)站推廣。自動(dòng)伸縮是每個(gè)人都想要的,尤其是在微服務(wù)領(lǐng)域。讓我們看看如何在基于Spring Boot的應(yīng)用程序中實(shí)現(xiàn)。
我們決定使用Kubernetes、Pivotal Cloud Foundry或HashiCorp's Nomad等工具的一個(gè)更重要的原因是為了讓系統(tǒng)可以自動(dòng)伸縮。當(dāng)然,這些工具也提供了許多其他有用的功能,在這里,我們只是用它們來實(shí)現(xiàn)系統(tǒng)的自動(dòng)伸縮。乍一看,這似乎很困難,但是,如果我們使用Spring Boot來構(gòu)建應(yīng)用程序,并使用Jenkins來實(shí)現(xiàn)CI,那么就用不了太多工作。
今天,我將向您展示如何使用以下框架/工具實(shí)現(xiàn)這樣的解決方案:
它是如何工作的
每一個(gè)包含Spring Boot Actuator庫的Spring Boot應(yīng)用程序都可以在/actuator/metrics端點(diǎn)下公開metric。許多有價(jià)值的metric都可以提供應(yīng)用程序運(yùn)行狀態(tài)的詳細(xì)信息。在討論自動(dòng)伸縮時(shí),其中一些metric可能特別重要:JVM、CPU metric、正在運(yùn)行的線程數(shù)和HTTP請(qǐng)求數(shù)。有專門的Jenkins流水線通過按一定頻率輪詢/actuator/metrics 端點(diǎn)來獲取應(yīng)用程序的指標(biāo)。如果監(jiān)控的任何metric【指標(biāo)】低于或高于目標(biāo)范圍,則它會(huì)啟動(dòng)新實(shí)例或使用另一個(gè)Actuator端點(diǎn)/actuator/shutdown來關(guān)閉一些正在運(yùn)行的實(shí)例。在此之前,我們需要知道當(dāng)前有那些實(shí)踐在提供服務(wù),只有這樣我們才能在需要的時(shí)候關(guān)閉空閑的實(shí)例或啟動(dòng)新的新例。
在討論了系統(tǒng)架構(gòu)之后,我們就可以繼續(xù)開發(fā)了。這個(gè)應(yīng)用程序需要滿足以下要求:它必須有公開的可以優(yōu)雅地關(guān)閉應(yīng)用程序和用來獲取應(yīng)用程序運(yùn)行狀態(tài)metric【指標(biāo)】的端點(diǎn),它需要在啟動(dòng)完成的同時(shí)就完成在Eureka的注冊(cè),在關(guān)閉時(shí)取消注冊(cè),最后,它還應(yīng)該能夠從空閑端口池中隨機(jī)獲取一個(gè)可用的端口。感謝Spring Boot,只需要約五分鐘,我們可以輕松地實(shí)現(xiàn)所有這些機(jī)制。
動(dòng)態(tài)端口分配
由于可以在一臺(tái)機(jī)器上運(yùn)行多個(gè)應(yīng)用程序?qū)嵗晕覀儽仨毐WC端口號(hào)不沖突。幸運(yùn)的是,Spring Boot為應(yīng)用程序提供了這樣的機(jī)制。我們只需要將application.yml中的server.port屬性設(shè)置為0。因?yàn)槲覀兊膽?yīng)用程序會(huì)在Eureka中注冊(cè),并且發(fā)送唯一的標(biāo)識(shí)instanceId,默認(rèn)情況下這個(gè)唯一標(biāo)識(shí)是將字段spring.cloud.client.hostname, spring.application.name和server.port拼接而成的。
示例應(yīng)用程序的當(dāng)前配置如下所示。
可以看到,我通過將端口號(hào)替換為隨機(jī)生成的數(shù)字來改變了生成instanceId字段值的模板。
spring: application: name: example-service server: port: ${PORT:0} eureka: instance: instanceId: ${spring.cloud.client.hostname}:${spring.application.name}:${random.int[1,999999]}
新聞標(biāo)題:微服務(wù)領(lǐng)域SpringBoot自動(dòng)伸縮的實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
文章位置:http://vcdvsql.cn/article34/csiose.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站營銷、云服務(wù)器、自適應(yīng)網(wǎng)站、服務(wù)器托管、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容