張佔嶺 -
springboot~傳統WEB應用開啓CSRF
CSRF 是什麼?
CSRF(Cross-Site Request Forgery,跨站請求偽造) 是一種常見的Web安全漏洞。攻擊者利用受害者已經登錄的合法會話,誘使受害者執行非本意的操作。
簡單比喻:
想象你在咖啡店會員卡里有錢,你每次消費只需要説“用會員卡支付”。攻擊者偽裝成服務員,在你面前説“用會員卡轉賬100元到XXX賬户”。因為你已經在咖啡店的系統中“登錄”了(身份已認證),系統就
後端
張佔嶺 -
jvm~分析gc老年代內存過高的原因
gc的老年代內存高居不下,導致最後full gc的發生,我們需要通過分析gc dump文件來解決biggest objects過多的問題
生成dump文件
在keycloak容器中安裝輕量級工具
microdnf install -y wget
microdnf install -y procps-ng #包含ps命令
ps -aux # 找到keycloak的pid,默認是712
wget
後端
張佔嶺 -
k8s~Kubernetes PDB
在Kubernetes(k8s)中,PodDisruptionBudget(PDB)是一種資源對象,用於限制在自願中斷(voluntary disruptions)期間同時終止的Pod數量,從而保障應用的可用性。以下是詳細説明:
我們為Deployment配置了PDB(PodDisruptionBudget),目的是在自願中斷(如節點維護、升級)時,保證一定數量的Pod副本可用。但是,PDB並不
kubernetes
張佔嶺 -
k8s~deployment和service如何找到pod
deployment關聯到pod
spec.selector.matchLabels.deployment: hello
作用:
這是選擇器(Selector),用於告訴Deployment:
識別哪些Pod屬於這個Deployment管理
它會匹配集羣中已有的Pod標籤
一個Deployment只能管理與自己selector匹配的Pod
關鍵點:
用於查找和選擇現有的Pod
決定
kubernetes
張佔嶺 -
jvm~jvm配置與系統配置的關係
一 生產環境問題描述
keycloak是運行在jboss上面,並且部署到了容器裏,在k8s上面進行編排,現在遇到gc在某個時刻垃圾回收速度變慢,CPU接近100%,容器導致存活探針失敗,容器最後重啓
二 問題分析與解決方案
這是一個典型的 JVM GC 問題導致的容器重啓場景。讓我分析一下你的配置和可能的原因:
2.1 問題分析
根據你的 devops.yaml 配置:
後端
張佔嶺 -
wasm~tinygo寫一個基於redis的全侷限流的插件
Global Limit 插件
插件功能
基於白名單的全侷限流插件,對指定的域名和URL路徑進行全侷限流控制,共享同一個限流計數器。
核心特性
按域名 + URL路徑進行全侷限流
使用 Redis Sorted Set 實現滑動時間窗口
白名單機制:只對配置的域名和路徑進行限流
支持正則表達式匹配URL路徑
實現邏輯
1. 請求處理流程
請求到達 → 檢查域名白名單 → 檢查路徑白名單
後端
張佔嶺 -
大語言模型~Ollama本地模型和java一起體驗LLM
説明
用户輸入多個“信息”
大語言模型將“信息”進行處理,轉成數組;(一維張量,向量)
通過餘弦相似度等相關算法,計算兩個向量是否相似
Ollama接口步驟
安裝 Ollama: https://ollama.ai/
下載模型: ollama pull nomic-embed-text
Ollama 默認運行在 http://localhost:11434
推薦的嵌入模型:
AI
張佔嶺 -
springboot~通過集成測試來理解Accept和Content-Type
🎯 核心區別
Content-Type:告訴服務器我發送的數據是什麼格式
Accept:告訴服務器我希望接收什麼格式的響應數據
📋 詳細説明
1. Content-Type (內容類型)
作用:描述請求體的格式
使用場景:當你的請求有請求體時(如POST、PUT請求)
示例:Content-Type: application/json 表示"我發送的是JSON格式的數據"
/
後端
張佔嶺 -
子網掩碼基礎知識
子網掩碼基礎知識
子網掩碼由連續的1和連續的0組成,1表示網絡位,0表示主機位。
1. 基礎概念
IPv4地址:由32位二進制組成,通常表示為4個十進制數(如192.168.1.0)。
子網掩碼:用於劃分網絡和主機部分。例如,255.255.255.0(即/24)表示前24位為網絡號,後8位為主機號。
2. 地址數量計算
公式:
可用主機地址數 = (2^{(32
網絡安全
張佔嶺 -
apisix~redirect重定向插件
基本功能
將某個長鏈接,使用一個域名代替它,在瀏覽器上輸入域名,可以直接重定向到這個鏈接對接的網絡
使用方法
{
"uri": "/*",
"name": "short",
"methods": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH",
"HEAD",
"OPTIONS",
"C
opensource
張佔嶺 -
k8s~根據podIP查看pod信息
在 Kubernetes 集羣中查找與特定 Pod IP(如 10.10.5.7)關聯的服務,可以通過以下步驟操作:
方法 1:通過 Endpoints 查詢(推薦)
kubectl get endpoints --all-namespaces -o json | \
jq -r '.items[] | select(.subsets[].addresses[].ip == "10.10.5.7"
kubernetes
張佔嶺 -
redis~多行語句的原子性_事務性
高併發下 Redis 事務的原子性分析
1. 代碼結構分析
redisTemplate.execute(new SessionCallbackObject() {
@Override
public String, Long Object execute(RedisOperationsString, Long operations) {
operations.mult
nosql
張佔嶺 -
mcp~客户端與服務端的通訊技術
mcp通訊協議
stdio
sse
streamable http
JSON_RPC
MCP 的傳輸層負責將 MCP 協議消息轉換為 JSON-RPC 格式進行傳輸,並將接收到的 JSON-RPC 消息轉換回 MCP 協議消息
請求
{
jsonrpc: "2.0",
id: number | string,
method: string,
params?: obj
AI
,
mcp
張佔嶺 -
keycloak~關於跨域的iframe對接keycloak的分析
幾個cookie下面元素
AUTH_SESSION_ID 會話級的session_state
AUTH_SESSION_ID_LEGACY 在http中可見的AUTH_SESSION_ID
KEYCLOAK_SESSION 帶有效期的session_state
KEYCLOAK_SESSION_LEGACY 在http中可見的KEYCLOAK_SESSION
KEYCLOAK_IDEN
後端
張佔嶺 -
keycloak~登录时将请求头里某个属性放入UserSessionModel
UserSessionModel做為用户登錄過程中的一個會話,可以用來跨flow使用數據,這些數據被保存到內存裏,在認證過程中可以被使用,今天的一個需求要求在登錄時從請求頭獲取IP所在地並寫到kafka裏,要想實現這個需求,你可以在現有認證流程中修改代碼,但不建議這樣做,因為這種修改對原始邏輯會有破壞,keycloak提供了自定義認證流,並在後台可以靈活的配置。
相關keycloak中的知識
認
后端