Spring Boot 2.3提供K8s活性和就緒性探針,將成為核心概念積極擁抱K8s! - spring.io
Spring Boot 2.3將包括對Kubernetes liveness&readiness Probe的本地支援,擴充套件了2.2的“執行狀況組”支援,允許開發人員選擇執行狀況指標的子集,並將其分組為單個相關的執行狀況。
Kubernetes的活性Liveness和就緒性probes探針
在Kubernetes中,活性和就緒性Kubernetes概念代表了應用程式狀態的各個方面。
應用程式的活動狀態指示內部狀態是否有效。如果活性Liveness被破壞,則意味著應用程式本身處於故障狀態,無法恢復。在這種情況下,最好的做法是重新啟動應用程式例項。例如,如果本地快取已損壞且無法修復,則依賴本地快取的應用程式應失敗其活動狀態。
就緒狀態告知應用程式是否已準備好接受客戶端請求。如果就緒狀態尚未就緒,則Kubernetes不應將流量路由到該例項。如果應用程式太忙於處理任務佇列,則它可以將自己宣告為忙碌,直到可以再次管理其負載為止。
活性和就緒性將成為Spring Boot的核心概念
這些活動性和就緒性概念不僅適用於Kubernetes,而且無論部署平臺如何,它們通常都非常有用。我們將介紹LivenessState和ReadinessState,它們是這些概念的不可變表示形式。您可以隨時從中獲取它們ApplicationAvailabilityProvider:
// Available as a component in the application context ApplicationAvailabilityProvider availabilityProvider; LivenessState livenessState = availabilityProvider.getLivenessState(); ReadinessState readinessState = availabilityProvider.getReadinessState() |
您需要進行檢查以瞭解應用程式狀態不完整的僅輪詢模型。只有應用程式知道其生命週期(啟動,關閉),或者可以提供有關執行時錯誤的上下文(在處理任務時以中斷狀態結束)。Spring Boot應用程式上下文在應用程式的生命週期中本地釋出這些事件;您的應用程式程式碼也應該對此有所幫助。
這就是為什麼我們選擇使用Spring Application Event模型來更改可用性狀態並監聽更新的原因:
/** * Component that checks that the local cache is in a valid state. */ @Component public class LocalCacheVerifier { private final ApplicationEventPublisher eventPublisher; public LocalCacheVerifier(ApplicationEventPublisher eventPublisher) { this.eventPublisher = eventPublisher; } public void checkLocalCache() { try { //... } catch (CacheCompletelyBroken ex) { this.eventPublisher.publishEvent(LivenessStateChangedEvent.broken(ex)); } } } |
元件還可以通過@EventListener(或通過實現ApplicationListener)偵聽那些事件。請查閱參考文件以獲取更多資訊。
該支援直接隨spring-boot模組一起提供,並且為所有Spring Boot應用程式啟用。這使它可用於所有型別的應用程式(Web,批處理等),並允許您實現不一定與HTTP繫結的探針。
使用Spring Boot Actuator公開Kubernetes探針
您可能會對一個非常常見的用例感興趣:在Kubernetes上部署Web應用程式並配置HTTP探針。將Spring Boot Actuator依賴項新增到您的應用程式是唯一的要求!Actuator將使用執行狀況支援來配置“ 活動性”和“就緒” HTTP探針.端點:"/actuator/health";"/actuator/health/liveness"和"/actuator/health/readiness"。
詳細點選標題進入
相關文章
- K8S使用就緒和存活探針配置健康檢查K8S
- 積極擁抱開源 阿里雲成為CNCF白金會員阿里
- K8S配置存活、就緒和啟動探測器K8S
- k8s——核心概念篇K8S
- 擁抱雲原生,如何將開源專案用k8s部署?K8S
- Kubernetes活躍性和就緒性探針的設定技巧 - colinbreck
- 圖解 K8s 核心概念和術語圖解K8S
- Docker和k8s核心概念(理解友好版)DockerK8S
- Spring Boot 把 Maven 幹掉了,擁抱 Gradle!Spring BootMavenGradle
- .NET 9 的新亮點:AI就緒 ,擁抱她AI
- dubbo 協議的 K8s pod 存活探針配置協議K8S
- 五分鐘 k8s 實戰-應用探針K8S
- 重要版本Spring Boot 2.3.0釋出 - spring.ioSpring Boot
- RSocket入門:Spring Boot伺服器 -Spring.ioSpring Boot伺服器
- 擁抱極限程式設計(Do do XP)程式設計
- Meteor 1.2 將擁抱 ES6、AngularJS 和 ReactAngularJSReact
- 掌握SpringBoot-2.3的容器探針:深入篇Spring Boot
- 擁抱Spring全新OAuth解決方案SpringOAuth
- Concepts (k8s 概念)K8S
- k8s學習 - 概念 - DeploymentK8S
- k8s學習 - 概念 - PodK8S
- CRM軟體:為銷售團隊提供資訊共享,增加銷售跟進積極性
- 【K8S 系列】k8s 學習二,kubernetes 核心概念及初步瞭解安裝部署方式K8S
- [K8S 系列]k8s 學習二,kubernetes 核心概念及初步瞭解安裝部署方式K8S
- 掌握SpringBoot-2.3的容器探針:基礎篇Spring Boot
- 掌握SpringBoot-2.3的容器探針:實戰篇Spring Boot
- 擁抱 NamedParameterJdbcTemplateJDBC
- 極速安裝和體驗k8s(Minikube)K8S
- k8s學習 - 概念 - master/nodeK8SAST
- K8S核心概念之SVC(易混淆難理解知識點總結)K8S
- 【擁抱情緒—實踐篇系列11】同理心
- 華雲資料積極擁抱新基建 用雲端計算賦能數字經濟發展
- Java NIO之擁抱Path和FilesJava
- Rancher Prime 為平臺工程提供面向 K8s 的彈效能力K8S
- 擁抱Spring全新OAuth2解決方案SpringOAuth
- 智慧產業就緒指數將成為工業4.0轉型的全球標準產業
- Spring Boot核心配置Spring Boot
- Spring Boot 核心(二)Spring Boot