待整理知識點,備忘html
Servlet門面模式前端
github:
Android View可見性判斷
重定向工具類
來電閃屏android
DBFound:git
參考資料:github,快速應用開發平臺 dbfoundgithub
docker:一個相似虛擬機的技術redis
參考資料:用通俗的話說明docker是什麼,docker的通俗理解算法
Raft:分佈式系統的算法,相似的有Paxossql
參考資料:分佈式系統的Raft算法mongodb
Dubbo:一個分佈式服務框架docker
參考資料:Dubbo是什麼
Hystrix熔斷機制:
參考資料:Hystrix入門指南
Velocity:是一個基於Java的模板引擎。它容許任何人使用簡單而強大的模板語言來引用Java代碼中定義的對象。
參考資料:Velocity入門
Storm:
參考資料:《Storm入門》中文版
TEST
參考資料:REST簡介,REST,以及RESTful的講解
JS教程
mongodb
redis
索引
主僕模式
maven深刻
看完Wiki
大學習方向
RPC
優雅降級、漸進增強
protobuf和protostuff
protostuff是一個基於protobuf實現的序列化方法,它較於protobuf最明顯的好處是,在幾乎不損耗性能的狀況下作到了不用咱們寫.proto文件來實現序列化
https://blog.csdn.net/eric520zenobia/article/details/53766571
Big Endian 和 Little Endian
負載均衡算法對比
輪詢,隨機,地址哈希,加權輪詢,加權隨機
負載均衡軟件解決方案
LVS和Nginx的對比
集羣間zab協議,Zookeeper舉例
leader election、Atomic broadcas
zookeeper容錯特性
問題,zookeeper是爲了不服務路由或負載均衡服務器宕機而出現單點故障,可是,容錯特性這裏:zookeeper掛了怎麼辦?是同時將zookeeper部署在多臺服務器(zookeeper集羣)作容錯處理嗎?
服務消費者只有第一次調用服務器時須要查詢服務配置中心(zookeeper),後面緩存到本地,而不須要再次請求,知道服務器的地址列表有變動?那服務消費者是怎麼知道變動的?經過和zookeeper的長鏈接接收推送嗎?
zookeeper的watcher爲何設計成一次性的,也就是說,每次在處理完狀態變化事件以後,須要從新註冊watcher,這個特性也使得在處理事件和從新加上watcher這段時間發生的節點狀態變化沒法被感知。
zkclient,https://github.com/sgroschupf/zkclient.git,這個開源項目解決了watcher的一次性註冊問題,還簡化了zonde的二進制數據存儲(ZKSerializer接口)
一致性哈希算法?page 68
負載均衡算法裏的最小鏈接數算法(Least Connections),最小積壓鏈接數?要是多臺服務器的積壓鏈接數是同樣,怎麼處理?用隨機分配嗎?
因爲memcache使用了libevent來進行高效的網絡鏈接處理,所以在安裝memcache以前,須要先安裝libevent
libevent是啥?
memcache官方提供Memcached-Java-Client工具包含了對memcache協議的Java封裝,能夠設置是否適用Nagle算法,什麼是Nagle算法?什麼是Hash算法?
CAS操做?
ACID操做?
MySQL複製(replication)策略
將一臺MySQL數據庫服務器中的數據複製到其餘MySQL數據庫服務器上。當各臺數據庫服務器上都包含相同的數據時,前端應用經過訪問MySQL集羣中任意一臺服務器,都可以讀取到相同的數據,這樣每臺MySQL服務器所須要承擔的負載就會大大下降,從而提升整個系統的承載能力,達到系統擴展的目的。
要實現此功能,須要開啓Master服務器端的Binary log。數據複製的過程實際上就是Slave從Master獲取binary log,而後在本地的鏡像執行日誌中記錄的操做。因爲是異步操做,可能數據有延時,只能保證數據的最終一致性。
爲了讓SQL語句在Slave端也可以正確的執行,Master還須要記錄SQL執行的上下文信息,SQL執行的上下文信息是什麼?
Slave須要將Master上的sql全執行一遍,還須要執行全部查詢,Master就只是作寫入,怎麼感受不須要Master也能夠?答案:若是沒有Master,若是有Slave的sql執行失敗,那以哪一個Slave的數據爲準?因此須要Master來保證數據一致性。另外,主從分離,要看業務場景來使用,好比銀行系統,要求數據寫讀不能有延時,必定要即時一致性,就不能用讀寫分離的方案。
分表,冷熱數據不均衡場景?
分表分庫通常採用的對關鍵字段取模的方式,好比user_id%256,那麼當256個表或者庫也已經到達了瓶頸,這時候再次分表或分庫,會致使取模不一致問題,怎麼解決?仍是有別的解決辦法?難道一開始就用一致性hash?可是一致性hash也會致使部分數據受影響?
垂直化搜索引擎 Lucene
倒排索引
操做系統對進程打開的文件句柄數是有限制的
ISV 英文全稱是Independent Software Vendors ,意爲「獨立軟件開發商」,特指專門從事軟件的開發、生產、銷售和服務的企業,如微軟(Microsoft)、甲骨文(Oracle)等。
取文件魔數
經過縮放圖片改變圖片的二進制結構,避免惡意代碼執行,ImageMagick+jmagick
常見的Web攻擊手段
XSS,CRSF,SQL注入,文件上傳漏洞,DDoS(SYN Flood,DNS Query Flood,CC),DNS域名劫持,CDN回源攻擊,服務器權限提高,緩衝區溢出等
數字簽名
經過組合數字摘要和非對稱加密算法,來確認內容是否被篡改,發送者是否正確,好比MD5withRSA,SHA1withRSA
摘要認證、簽名認證和Https的進化過程
摘要認證:http協議裏,經過數字摘要算法,例如MD5等,對傳輸的數據進行摘要,爲了防止彩虹表攻擊等,通常會哈希加鹽,鹽就是約定的私鑰,通訊的兩端都須要保存(所以有泄露風險),兩端經過這套相同處理用於斷定傳輸的數據是否被篡改,可是沒法作到對所有數據進行加密
簽名認證:對全部數據進行非對稱加密,用公鑰私鑰加解密,相對於摘要認證,能夠對全部數據進行加密,更安全,可是對全部數據進行非對稱加密,要消耗更多的性能和硬件資源
https:用相同密碼及算法對數據進行高性能的對稱加密,這個密碼每次都用用簽名認證的方式(非對稱加密)進行傳輸,所以這個密碼能夠每次都不同,由於只對這個密碼進行加密,消耗的性能和硬件資源相對小不少。這個方案簡直完美!
kafka
Partition含有N個Replica,N爲副本因子,其中一個爲Leader,處理全部讀寫,其餘都爲Follow,按期同步Leader上的數據,爲何這樣設計?有什麼辦法解決Leader的讀寫瓶頸嗎?
Producer根據指定的路由方法(Round-Robin、Hash等),將消息push到topic的某個partition裏面。路由方法的選擇?好比hash和round-robin的弊端問題怎麼處理?一個broker裏面是隻有一個partition嗎?
Spring boot
堡壘跳板機
各個技術比較,及使用sample,代碼上傳到github
macaca+uirecorder android 源碼分析,技術原理