1、單機和分布式應用的登入檢驗講解
簡介:講解單機和分布式應用下登入校驗,session共享,分布式快取使用
1、單機tomcat應用登入檢驗
sesssion儲存在瀏覽器和應用伺服器會話之間
使用者登入成功,服務端會保證乙個session,當然會給客戶端乙個sessionid,
客戶端會把sessionid儲存在cookie中,每次請求都會攜帶這個sessionid
2、分布式應用中session共享
真實的應用不可能單節點部署,所以就有個多節點登入session共享的問題需要解決
1)tomcat支援session共享,但是有廣播風暴;使用者量大的時候,占用資源就嚴重,不推薦
2)使用redis儲存token:
服務端使用uuid生成隨機64位或者128位token,放入redis中,然後返回給客戶端並儲存在cookie中
使用者每次訪問都攜帶此token,服務端去redis中校驗是否有此使用者即可
2、微服務下登入檢驗解決方案 jwt講解
簡介:微服務下登入檢驗解決方案 jwt講解 json wen token
1、jwt 是乙個開放標準,它定義了一種用於簡潔,自包含的用於通訊雙方之間以 json 物件的形式安全傳遞資訊的方法。
jwt 可以使用 hmac 演算法或者是 rsa 的公鑰金鑰對進行簽名
***x
//成功返回true,失敗返回false
}優點:
1)生產的token可以包含基本資訊,比如id、使用者暱稱、頭像等資訊,避免再次查庫
2)儲存在客戶端,不占用服務端的記憶體資源
缺點:token是經過base64編碼,所以可以解碼,因此token加密前的物件不應該包含敏感資訊
如使用者許可權,密碼等
2、jwt格式組成 頭部、負載、簽名
header+payload+signature
頭部:主要是描述簽名演算法
負載:主要描述是加密物件的資訊,如使用者的id等,也可以加些規範裡面的東西,如iss簽發者,exp 過期時間,sub 面向的使用者
簽名:主要是把前面兩部分進行加密,防止別人拿到token進行base解密後篡改token
3、關於jwt客戶端儲存
可以儲存在cookie,localstorage和sessionstorage裡面
1、加入相關依賴
io.jsonwebtoken
jjwt
0.7.0
2、開發生產token方法
3、開發檢驗token方法
redis 單機鎖 和 分布式鎖
偷自 require vendor autoload.php client new predis client scheme tcp host 127.0.0.1 port 6379,class redislock desc 獲取鎖鍵名 public function getlockcachekey...
單機,分布式和集群的區別
我想大家最最最熟悉的就是單機結構,乙個系統業務量很小的時候所有的 都放在乙個專案中就好了,然後這個專案部署在一台伺服器上就好了。整個專案所有的服務都由這台伺服器提供。這就是單機結構。那麼,單機結構有啥缺點呢?我想缺點是顯而易見的,單機的處理能力畢竟是有限的,當你的業務增長到一定程度的時候,單機的硬體...
如何把應用從單機擴充套件到分布式
目錄 第一版 單台伺服器應用 第二版 應用伺服器和資料庫伺服器分離 第三版 應用伺服器集群 第四版 負載均衡器 第五版 資料庫伺服器集群 第六版 搜尋引擎集群 第七版 快取伺服器 第八版 資料庫水平 垂直拆分 第九版 應用伺服器垂直拆分 第十版 soa服務 分布式架構 本節會學習以下內容 出現以下問...