中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

微服務領(lǐng)域SpringBoot自動伸縮的實現(xiàn)方法-創(chuàng)新互聯(lián)

前言

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、大田網(wǎng)站維護、網(wǎng)站推廣。

自動伸縮是每個人都想要的,尤其是在微服務領(lǐng)域。讓我們看看如何在基于Spring Boot的應用程序中實現(xiàn)。

我們決定使用Kubernetes、Pivotal Cloud Foundry或HashiCorp's Nomad等工具的一個更重要的原因是為了讓系統(tǒng)可以自動伸縮。當然,這些工具也提供了許多其他有用的功能,在這里,我們只是用它們來實現(xiàn)系統(tǒng)的自動伸縮。乍一看,這似乎很困難,但是,如果我們使用Spring Boot來構(gòu)建應用程序,并使用Jenkins來實現(xiàn)CI,那么就用不了太多工作。

今天,我將向您展示如何使用以下框架/工具實現(xiàn)這樣的解決方案:

  • Spring Boot
  • Spring Boot Actuator
  • Spring Cloud Netflix Eureka
  • Jenkins CI

它是如何工作的


每一個包含Spring Boot Actuator庫的Spring Boot應用程序都可以在/actuator/metrics端點下公開metric。許多有價值的metric都可以提供應用程序運行狀態(tài)的詳細信息。在討論自動伸縮時,其中一些metric可能特別重要:JVM、CPU metric、正在運行的線程數(shù)和HTTP請求數(shù)。有專門的Jenkins流水線通過按一定頻率輪詢/actuator/metrics 端點來獲取應用程序的指標。如果監(jiān)控的任何metric【指標】低于或高于目標范圍,則它會啟動新實例或使用另一個Actuator端點/actuator/shutdown來關(guān)閉一些正在運行的實例。在此之前,我們需要知道當前有那些實踐在提供服務,只有這樣我們才能在需要的時候關(guān)閉空閑的實例或啟動新的新例。



在討論了系統(tǒng)架構(gòu)之后,我們就可以繼續(xù)開發(fā)了。這個應用程序需要滿足以下要求:它必須有公開的可以優(yōu)雅地關(guān)閉應用程序和用來獲取應用程序運行狀態(tài)metric【指標】的端點,它需要在啟動完成的同時就完成在Eureka的注冊,在關(guān)閉時取消注冊,最后,它還應該能夠從空閑端口池中隨機獲取一個可用的端口。感謝Spring Boot,只需要約五分鐘,我們可以輕松地實現(xiàn)所有這些機制。

動態(tài)端口分配


由于可以在一臺機器上運行多個應用程序?qū)嵗?,所以我們必須保證端口號不沖突。幸運的是,Spring Boot為應用程序提供了這樣的機制。我們只需要將application.yml中的server.port屬性設置為0。因為我們的應用程序會在Eureka中注冊,并且發(fā)送唯一的標識instanceId,默認情況下這個唯一標識是將字段spring.cloud.client.hostname, spring.application.name和server.port拼接而成的。

示例應用程序的當前配置如下所示。


可以看到,我通過將端口號替換為隨機生成的數(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]}

新聞標題:微服務領(lǐng)域SpringBoot自動伸縮的實現(xiàn)方法-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article34/csiose.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站營銷、云服務器自適應網(wǎng)站、服務器托管動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設
麟游县| 专栏| 繁昌县| 达日县| 西乌珠穆沁旗| 新宁县| 黔西县| 峨边| 靖宇县| 乌兰浩特市| 修武县| 云林县| 河北省| 溆浦县| 社旗县| 南召县| 莫力| 陵水| 东山县| 虹口区| 遵义县| 邹城市| 商城县| 闽清县| 宿松县| 白玉县| 哈巴河县| 铅山县| 开鲁县| 莎车县| 岫岩| 延吉市| 弋阳县| 孟连| 威宁| 西安市| 浪卡子县| 宝兴县| 桂东县| 七台河市| 三亚市|