(繁中說明) Embedded Hazelcast in Spring Boot Application With Spring Session

前言 #

這是我在 Github 的 Repo Embedded Hazelcast in Spring Boot Application With Spring Session (Deploy on Kubernetes) 的中文說明。

P.S. 這篇和前一篇文章 Spring Session + Hazelcast | Client/Server 部署 - 單個 Application 部署連通測試 不屬於同一系列的 POC!

正文開始 #

在 Spring Boot 應用程式中,使用 Embedded Hazelcast 對接 Spring Session (部署在 Kubernetes) #

這個 Repo 是基於 Hazelcast 官方指南為基礎的一個 forked repository,我進行了一些改進,讓我們可以更方便觀察 session 的狀況。

這個應用程式將會在 Kubernetes 被以 Deployment 的方式部署起來執行,所以有興趣到當然可以試試看將它 scale out。

我想透過這個 repo 展示哪些概念? #

開始之前 #

為了進行測試,需要準備以下工具和環境:

如何構建 #

Application & Image #

專案打包 #

在專案目錄中,執行以下指令,打包 Spring Boot 應用程式:

mvn package -f pom.xml

Docker 環境設置 #

在開始 build images 之前,必須確保 Docker context 已經切換為 minikube 的 Docker context。

這樣 K8S Cluster 中的 API Server 才不會嘗試從 Dockerhub pull images,而會使用我們已經建立在 minikube Docker context 中的 images。

eval $(minikube docker-env)

在這邊要提醒一下:當 terminal session 遺失(視窗切換,或不小心關掉)時,環境設定也會跟著不見,到時候要再跑一次 eval 指令。

Docker Image Building #

執行下面的指令來 build images:

docker build -t embedded-hazelcast .

在 Kubernetes 上部署 #

創建Deployment #

執行 /deploy/apply/apply-deploy.sh,運行應用程式的單個 Replica (Pod) 的 Deployment。

Exposing Application #

執行 /expose/deploy-expose.sh ,將我們剛剛建立的 Kubernetes Deployment expose 成 Kubernetes Service。

Port Forwarding #

因為沒有一個 Load Balancer 類型的 Ingress,需要執行 /expose/port-forward.sh,來將 Service 的 port 轉發到 local(我們的電腦本機)。

如何測試 #

列出 Sessions #

使用瀏覽器開啟 localhost:7777/list,查看相關狀態。

🙏🙏🙏

感謝你的閱讀 💖!
歡迎將本篇文章 分享 📋 出去,也歡迎到 我的 LinkedIn 聊聊。

Published