原创 SSO單點登錄詳解------三、單點註銷流程解析

一、前言 單點登錄自然也要單點註銷,在一個子系統中註銷,所有子系統的會話都將被銷燬,用下面的圖來說明: 單點註銷流程 步驟分析: 1. 用戶在CRM系統中點擊註銷按鈕.會重定向到統一認證中心的註銷方法 2. 統一認證

原创 SSO單點登錄詳解-------四、手寫單點登錄客戶端和服務端

一、前言 我們自己動手寫單點登錄的服務端目的是爲了加深對單點登錄的理解.如果你們公司想實現單點登錄/單點註銷功能,推薦使用開源的單點登錄框架CAS.我們後面的章節也會帶同學們快速搭建CAS Server和CAS Client的環境

原创 SSO單點登錄詳解-------五、手寫單點登錄客戶端和服務端單點註銷

一、前言 單點登錄自然也要單點註銷,在一個子系統中註銷,所有子系統的會話都將被銷燬,用下面的圖來說明。單點註銷難點在於在其中一個系統註銷之後,需要把其他的子系統的會話銷燬.所以肯定需要子系統在令牌校驗通過之後,統一認證中心要把該子

原创 [LeetCode]40.最小的k個數(TopK問題。通過維護堆、優先隊列、快排思想等解決方法)

最小的k個數 輸入整數數組 arr ,找出其中最小的 k 個數。例如,輸入4、5、1、6、2、7、3、8這8個數字,則最小的4個數字是1、2、3、4。 示例 1: 輸入:arr = [3,2,1], k = 2 輸出:[1,2]

原创 Mysql使用Key/Value方式存儲動態擴展字段、對象與HashMap的相互轉化

1、背景 在項目剛剛進入開發階段設計表時,後期表的字段很可能會增加,可以設計出預留字段來應對。但是假如你的數據數據非常龐大且,那麼執行修改表語句時會長時間鎖表。而且假如一張表支持許多個客戶,每個客戶的需求不相同且多變時,使用一張表

原创 生產環境又有問題?都是髒數據惹的禍!

本文筆者對髒數據的來源、髒數據的危害、髒數據的預防、如何對已出現的髒數據進行處理等問題進行詳細闡述。 “小光,今天那個詭異的生產環境問題找到原因了嗎?” “還是數據問題!之前做的一個功能有一部分數據遷移工作沒有做好,導致生產環

原创 使用 DecimalFormat 和 NumberFormat 處理數字的格式化顯示問題(千分位、百分號等)

前言 在工作當中,可能經常會遇到比如數據保留兩位小數顯示,去除後面多餘0,按指定格式輸出數據這種需求,有時隔得時間久了也難免會忘記,所以就稍作總結方便今後查看,同時最後提供一個工具類方便今後使用。NumberFormat爲數值格式

原创 SSO單點登錄詳解-------二、單點登錄流程解析

一、簡介 單點登錄(Single Sign On),簡稱爲 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。 二、應用場景 如公司有多個系統,

原创 SSO單點登錄詳解-------一、多系統登錄時存在的問題

一、學習大綱 1.回顧會話機制和登錄機制. 因爲學習單點登錄需要對Cookie和Session有較深的理解,所以我們會先回顧知識. 2.多系統的複雜性帶來的問題,我們如何解決這些問題?通過這個問題引出單點登錄的需求. 3.自己動手

原创 Synchronized關鍵字與ReetrantLock同步鎖學習筆記

一、Synchronized 1、概念 synchronized保證被修飾的方法或代碼塊操作的原子性、可見性和有序性。synchronized可重入鎖、不可中斷,適合線程競爭不激烈。 被Synchronized 關鍵字描述的方法

原创 ReentrantLock中lock(),tryLock(),lockInterruptibly()的區別

lock() 兩個線程都使用lock獲取鎖,如果線程A獲取到了鎖,線程B只能等待,對線程B調用interrupt()方法不能中斷線程B的等待過程。 tryLock() 使用lock獲取鎖,如果線程A獲取到了鎖,線程A返回true,

原创 Mysql索引失效原理與最左匹配原則

索引的底層是一顆B+樹,那麼聯合索引當然還是一顆B+樹,只不過聯合索引的健值數量不是一個,而是多個。構建一顆B+樹只能根據一個值來構建,因此數據庫依據聯合索引最左的字段來構建B+樹。 例子:假如創建一個(a,b)的聯合索引,那麼它

原创 [LeetCode]231.給定一個整數,編寫一個函數來判斷它是否是 2 的冪次方。(擴展:給定一個數,判斷它是否是完全平方數)

給定一個整數,編寫一個函數來判斷它是否是 2 的冪次方。 示例 1: 輸入: 1 輸出: true 解釋: 20 = 1 示例 2: 輸入: 16 輸出: true 解釋: 24 = 16 示例 3: 輸入: 218 輸出:

原创 minio實現文件上傳下載和刪除功能

前言 之前用到文件上傳功能,在這裏做個學習記錄。使用minio實現,後面會記錄使用fastdfs和阿里雲的oss實現文件上傳以及他們的比較(oss根據流量收費)。minio的中文文檔:https://docs.min.io/cn/

原创 nginx反向代理結合keepalived實現高可用

一、概念 正向代理 正向代理最大的特點是客戶端非常明確要訪問的服務器地址。服務器只清楚請求來自哪個代理服務器,而不清楚來自哪個具體的客戶端;正向代理模式屏蔽或者隱藏了真實客戶端信息。 總結   始服務器(origin server