原创 安裝 Windows 服務工具之 NSSM

NSSM 可以將普通 exe 程序或 bat 文件封裝成 Windows 服務,下載地址。 NSSM 常用命令: 安裝服務:nssm install 服務名稱 # 也可以直接使用: nssm install,在界面再填寫服務名 刪除服務

原创 Caffeine 動態設置過期時間

實現 Expiry 接口 public class CaffeineExpiry implements Expiry<String, Object> { @Override public long expireAfterC

原创 Hashids java 版使用

在軟件開發中 id 通常爲 int 或者 long 類型,有時會有混淆 id 的需求,比如反爬蟲。Hashids 是一個小型的開源庫,可以將數字或者十六進制字符串轉換成唯一的、非順序的 id。 使用 添加依賴 <dependency>

原创 仿谷歌驗證 (Google Authenticator) 的一種 Java 實現

Google Authenticator 的原理是服務器隨機生成一個密鑰並保存並告知客戶端。用戶需要登陸時客戶端根據密鑰和時間戳通過一種算法生成一個6位數字的密碼。本文使用 java.util.zip.CRC32 模仿 Google Au

原创 k8s 部署 (一) SkyWalking 集羣

本文部署的 SkyWalking 版本爲 8.5.0,集羣模式爲 Nacos,存儲使用 Elasticsearch 7 下載對應版本的源碼並解壓,如本文對應的爲:v8.5.0 for H2/MySQL/TiDB/InfluxDB/Elas

原创 阿里雲 k8s 部署 Spring Cloud Alibaba 微服務實踐 (五) Kubernetes TCP Ingress

在 Kuberetes 應用中,一般是通過 Ingress 暴露 HTTP/HTTPS 的服務,但實際使用中可能需要暴露 TCP 服務。Ingress 默認包含了 Nginx,Nginx 本身支持 TCP 做反向代理,所以也 可以通過 I

原创 阿里雲 k8s 部署 Spring Cloud Alibaba 微服務實踐 (二) 部署微服務程序

零、鏡像 0.1. 母鏡像選擇 Alpine Linux 是一個面向安全應用的輕量級 Linux 發行版,基於 musl libc 和 busybox。Alpine 只有 5 M 左右,遠遠小於 CentOS 或 Ubuntu。因爲程序基

原创 阿里雲 k8s 部署 Spring Cloud Alibaba 微服務實踐 (三) 服務觀測

可觀測性指如何從外部輸出推斷及衡量系統內部狀態。Kubernetes 可觀測性體系包含監控和日誌兩部分,監控可以幫助開發者查看系統的運行狀態,而日誌可以協助問題的排查和診斷從可觀測性的角度,以 ACK(阿里雲 Kubernetes) 爲基

原创 阿里雲 k8s 部署 Spring Cloud Alibaba 微服務實踐 (一) 部署 Nacos

零、準備工作 0.1. 說明 目前官網提供的最新鏡像的 Nacos 版本爲 1.4.1,但是在部署過程中有問題,實際使用爲 1.3.0 官方文檔提供了自動伸縮的部署方式,但需要部署持久卷聲明(PersistentVolumeClaim

原创 Jenkins 之使用自定義主題

一、下載主題 打開:http://afonsof.com/jenkins-material-theme選擇主題顏色、上傳 logo,然後下載主題: 二、配置 Jenkins 安裝 Simple Theme 插件 系統管理—系統配置—Th

原创 阿里雲 k8s 部署 Spring Cloud Alibaba 微服務實踐 (四) 自動化部署

本文使用操作系統爲 CentOS 7,Jenkins 版本爲 2.277.1 零、準備工作 0.1. 安裝 JDK 本文使用 rpm 安裝:下載 rpm 包 rpm -ivh jdk-8u281-linux-x64.rpm 注: 無需配

原创 k8s (八) Deployment: 聲明式地升級應用

一、手動更新運行在 pod 內的應用程序 刪除舊版本 pod,使用新版本 pod 替換 先新建新 pod 再刪除舊版本 pod 執行滾動升級操作 二、使用 ReplicationController 實現自動的滾動升級

原创 k8s (七) 從應用訪問 pod 元數據以及其他資源

Downward API 可以給在 pod 中運行的進程暴露 pod 的元數據。目前我們可以給容器傳遞以下數據: pod 的名稱 pod 的 IP pod 所在的命名空間 pod 運行節點的名稱 pod 運行所歸屬的服務賬戶的名稱 每個

原创 k8s (六) ConfigMap 和 Secret:配置應用程序

一、向容器傳遞命令行參數 1.1. 在 Docker 中定義命令與參數 容器中運行的完整指令由兩部分組成:命令與參數。 ENTRYPOINT 與 CMD: ENTRYPOINT:定義容器啓動時被調用的可執行程序。 CMD:指定傳遞給 E

原创 k8s (五) 卷:將磁盤掛載到容器

Kubernetes 的卷是 pod 的 一 個組成部分,並和 pod 共享相同的生命週期。 一、通過卷在容器之間共享數據 1.1. 使用 emptyDir 卷 創建一個 pod 中有兩個共用同一個卷的容器: # fortune-pod.