一、面向服務的架構(SOA service oriented architecture)
RPC的全稱是Remote Process Call,遠程過程調用(yòng)。
無論是何種類型的數據,都要轉換成二進制在網絡上(shàng)進行傳輸。将對(duì)象轉換成二進制稱爲對(duì)象的序列化,将二進制恢複爲對(duì)象稱爲反序列化。
Hessian比java内置的序列化 效率高(gāo)很(hěn)多。
轉換成json或者xml
通過HttpClient發送Http請(qǐng)求
兩種主要的url鏈接風(fēng)格,一種是RPC風(fēng)格,一種是REST風(fēng)格。
RPC的url直接在http請(qǐng)求的參數中标明(míng)需要遠程調用(yòng)的服務接口名稱、服務需要的參數;
REST通過Http請(qǐng)求對(duì)應的POST、GET、PUT、DELETE來(lái)完成對(duì)應的crud操作(zuò)。
POST 創建、GET獲取信息、PUT更新、DELETE删除
分布式應用(yòng)架構體系對(duì)于業務邏輯的複用(yòng)需求很(hěn)強烈,上(shàng)層業務都想借用(yòng)已有的底層服務,來(lái)快(kuài)速搭建更多、更豐富的應用(yòng)。公共的業務被拆分出來(lái),形成可共用(yòng)的服務,最大(dà)程度的 保障代碼和(hé)邏輯的複用(yòng),避免重複創建,這(zhè)種設計(jì)稱爲SOA。
請(qǐng)求到(dào)來(lái)時(shí),将請(qǐng)求均勻分配到(dào)後台服務器,負載均衡服務器從(cóng)服務對(duì)應的地址列表中,通過相應的均衡算(suàn)法和(hé)規則,選取一台服務器進行訪問,這(zhè)個過程稱爲服務的均衡負載。
常見的均衡負載算(suàn)法包括輪詢法、随機法、原地址哈希法、加權輪詢法、加權随機法、最小(xiǎo)連接法等。
輪詢法(Round Robin):将請(qǐng)求按順序輪流分配到(dào)後端服務器,均衡的對(duì)待服務器,不關心服務器的連接數和(hé)實際負載。(需要保存輪詢的位置,需要加鎖,影響系統吞吐量)
随機法(Random):根據後端服務器列表的大(dà)小(xiǎo)值随機取一個,根據概率統計(jì)理(lǐ)論,随着數量的增多,越來(lái)越接近平均分配流量到(dào)後台服務器。
原地址哈希法(Hash):獲取客戶端訪問的ip地址,通過哈希算(suàn)法獲得一個值,用(yòng)該值對(duì)服務器列表長度進行取模運算(suàn),
加權輪詢法(Weight Round Robin):給配置高(gāo)、負載低(dī)的機器配置更高(gāo)的權重,讓其處理(lǐ)更多的請(qǐng)求,而低(dī)配置的機器則降低(dī)負載。
加權随機法(Weight Random):根據後端服務器不同的配置和(hé)負載情況,配置不同
的權重。
最小(xiǎo)連接法(Least Connection):後台服務器的請(qǐng)求有快(kuài)有慢,根據連接情況,選擇連接數最少的服務器來(lái)處理(lǐ)請(qǐng)求。
服務網關
二、分布式系統基礎設施
分布式session:将session統一存儲在分布式緩存中,可以保證較高(gāo)的讀寫性能(néng)。
Mysql的拓展
1、業務拆分
2、複制策略
随着訪問量增加,某個庫的壓力越來(lái)越大(dà),可以将數據複制到(dào)數據庫服務器上(shàng),前端通過訪問Mysql集群中任意的一台服務器,能(néng)夠讀到(dào)相同的數據。
3、分庫分表
當數據庫單表的記錄數達到(dào)千萬級别甚至億級且數據庫面臨極高(gāo)的并發訪問,需要對(duì)表的吞吐能(néng)力做拓展。
減少單表的記錄數,減少查詢所需時(shí)間,提供數據庫的吞吐量。
分表能(néng)夠解決單表數據量過大(dà)導緻查詢效率下(xià)降問題,但(dàn)無法解決并發的讀寫訪問。對(duì)數據庫進行拆分,提高(gāo)數據庫的寫入功能(néng),這(zhè)就是分庫。
3、互聯網安全架構
安全算(suàn)法包括摘要算(suàn)法、對(duì)稱加密算(suàn)法、非對(duì)稱加密算(suàn)法、信息編碼。
摘要算(suàn)法:MD5、SHA、Base64(可逆,不安全)
對(duì)稱加密算(suàn)法(安全性和(hé)秘鑰有關):DES、3DES、AES
非對(duì)稱加密算(suàn)法:需要兩個秘鑰,一個公開(kāi)秘鑰,一個私鑰。RSA算(suàn)法
數字簽名:MD5withRSA、SHA1withRSA
數字證書包括對(duì)象的名稱、證書的過期時(shí)間、證書的頒發機構、頒發機構對(duì)證書的數字簽名、簽名算(suàn)法、對(duì)象的公鑰
4、系統穩定性
日志分析常用(yòng)命令:1)查看(kàn)文(wén)件内容 cat ab.txt;
2)、分頁顯示文(wén)件 less access.log;
3)、顯示文(wén)件尾 -f 該參數用(yòng)于監視(shì)File文(wén)件增長 ;-n Number 從(cóng) Number 行位置讀取指定文(wén)件 tail -n2 -f access.log;
4)、顯示文(wén)件頭 head -n20 access.log;
5)、内容排序 -n 依照數值的大(dà)小(xiǎo)排序 -k排列的列 -t參數指定列分隔符 -r 以相反的順序來(lái)排序 sort -k 2 -t ’ ’ -n access.log
6)、字符統計(jì) -c 統計(jì)字節數 -l 統計(jì)行數 -m 統計(jì)字符數 -w 統計(jì)字數 wc -l access.log
7)、查看(kàn)重複出現(xiàn)的行 -c或–count 在每列旁邊顯示該行重複出現(xiàn)的次數;-u或–unique 僅顯示出一次的行列;-d或–repeated 僅顯示重複出現(xiàn)的行列 sort uniq | uniq -c -u
8)、字符串查找 -c :顯示總共有多少行被匹配到(dào)了(le);-n :顯示行号;–color :将匹配到(dào)的内容以顔色高(gāo)亮(liàng)顯示 grep -c qq access.log 支持正則表達式
9)、文(wén)件查找 find path -option [ -print ] [ -exec -ok command ] {} ;
path: find命令所查找的目錄路徑;-print: find命令将匹配的文(wén)件輸出到(dào)标準輸出;-exec: find命令對(duì)匹配的文(wén)件執行該參數所給出的shell命令
-name filename #查找名爲filename的文(wén)件
find . -print 打印當前目錄所有文(wén)件
find ./name/log -name access.log
10)、歸檔文(wén)件 -c: 建立壓縮檔案;-f: 指定包的名字;-v:顯示所有過程
tar -cf aa.tar file god
tar -xf aa.tar
11)、url訪問的工(gōng)具
<p style="margin-top: 0px; margin-bottom: 0px; padding: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(51, 51, 51); font-family: -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; white-spac