天天看點

《三年聯考五年模拟之網際網路三五年技術發展》總結,面試專用

整理搜集了近兩年來網際網路知識,内容龐大,如果你學會了,面試不成問題,由此可見網際網路發展太迅速了,各種知識點錯綜複雜,更新疊代的太快,可下載下傳

## 分布式

一、大型網站系統的特點
	高并發,大流量
	高可用
	海量資料
	使用者分布廣泛,網絡情況複雜
	安全環境惡劣
	需求快速變更,釋出頻繁
	漸進式發展
二、大型網站架構演化發展曆程
	初始階段的網站架構
	應用服務和資料服務分離
	使用緩存改善網站性能
	使用應用伺服器叢集改善網站的并發處理能力
	資料庫讀寫分離
	使用反向代理和CDN加速網站響應
	使用分布式檔案系統和分布式資料庫系統
	使用NoSQL和搜尋引擎
	業務拆分
	分布式微服務
三、拆分VS叢集
四、微服務VSSOA
五、前後端完全分離與Rest規範
六、CAP三進二和Base定理
	關系型資料庫遵循ACID規則
	CAP三進二
	BASE定理
	分布式一緻性理論paxos、raft、zab算法

## 中間件

一、緩存
	為什麼要使用緩存
	優秀的緩存系統Redis
	redis為什麼這麼快
	redis的資料類型,以及每種資料類型的使用場景
	redis的過期政策以及記憶體淘汰機制
	漸進式ReHash
	漸進式rehash的原因
	漸進式rehash的步驟
	緩存穿透
	緩存雪崩
二、消息隊列
	消息隊列應用場景
	異步處理
	應用解耦
	流量削鋒
	日志處理
	消息通訊
	消息中間件示例
	電商系統
	日志收集系統
	JMS消息服務
	消息模型
	消息消費
	防止消息丢失
	同步的事務——停止等待
	同步的事務——連續ARQ
	異步的事務——回調機制
	消息的幂等處理
	消息的按序處理
三、搜尋引擎
	概述
	特點(優勢):
	使用場景:
	反向索引
	建立索引
	一些要索引的原文檔(Document)
	将原文檔傳給分次元件(Tokenizer)
	将得到的詞元(Token)傳給語言處理元件(LinguisticProcessor)
	将得到的詞(Term)傳給索引元件(Indexer)
	搜尋索引
	使用者輸入查詢語句
	對查詢語句進行詞法分析,文法分析,及語言處理
	搜尋索引,得到符合文法樹的文檔
	根據得到的文檔和查詢語句的相關性,對結果進行排序
	Lucene和ElasticSearch
	分詞器

## 大資料與高并發

一、秒殺架構設計
	業務介紹
	業務特點
	瞬時并發量大
	庫存量少
	業務簡單
	技術難點
	現有業務的沖擊
	直接下訂單
	頁面流量突增
	架構設計思想
	限流
	削峰
	異步
	緩存
	整體架構
	用戶端優化
	秒殺頁面
	防止提前下單
	API接入層優化
	限制使用者次元通路頻率
	限制商品次元通路頻率
	SOA服務層優化
	秒殺整體流程圖
	總結
二、資料庫架構發展曆程
	單機MySQL的美好年代
	Memcached(緩存)+MySQL+垂直拆分
	Mysql主從複制讀寫分離
	分表分庫+水準拆分+mysql叢集
三、MySQL的擴充性瓶頸
四、為什麼要使用NOSQLNOTONLYSQL
五、傳統RDBMSVSNOSQL
六、NOSQL資料庫的類型
七、阿裡巴巴中文站商品資訊如何存放
	商品基本資訊
	商品描述、詳情、評價資訊(多文字類)
	商品的圖檔
	商品的關鍵字
	商品的波段性的熱點高頻資訊
	商品的交易、價格計算、積分累計
	大型網際網路應用(大資料、高并發、多樣資料類型)的難點和解決方案
八、資料的水準拆分和垂直拆分
	垂直拆分
	水準拆分
	拆分原則
	案例分析
九、分布式事務
	假如沒有分布式事務
	什麼是分布式事務?
	XA兩階段送出(2PC)
	XA三階段送出(3PC)
	MQ事務
	TCC事務
十、BitMap
	Bit-map的基本思想
	Bit-map應用之快速排序
	Bit-map應用之快速去重
	Bit-map應用之快速查詢
	Bit-map擴充——BloomFilter(布隆過濾器)
	總結
	應用
十一、BloomFilter
十二、常見的限流算法
	計數器法
	滑動視窗
	漏桶算法
	令牌桶算法
	計數器VS滑動視窗
	漏桶算法VS令牌桶算法
十三、負載均衡
	dns域名解析負載均衡
	反向代理負載均衡
	http重定向協定實作負載均衡
	分層的負載均衡算法
	十四、一緻性Hash算法

## 資料庫

一、資料庫範式
	1NF(第一範式)
	2NF(第二範式)
	3NF(第三範式)
二、資料庫開發規範
	基礎規範
	命名規範
	字段設計規範
	總結
三、資料庫索引
	唯一索引
	非唯一索引
	主鍵索引
	聚集索引(聚簇索引)
	擴充:聚集索引和非聚集索引的差別?分别在什麼情況下使用?
	索引實作機制
	索引建立原則
四、MyISAMvsInnoDB
五、并發事務帶來的問題
	丢失更新
	髒讀(未送出讀)
	不可重複讀
	幻讀(PhantomRead)
六、事務隔離級别及鎖的實作機制
	一級封鎖協定(對應readuncommited)
	二級封鎖協定(對應readcommited)
	三級封鎖協定(對應reapetableread)
	最強封鎖協定(對應Serialization)
七、MVCC(多版本并發控制)
八、間隙鎖與幻讀
	間隙鎖(Next-Key鎖)
	RR級别下防止幻讀

## 設計模式與實踐

一、OOP五大原則SOLID
	單一責任原則
	開放封閉原則
	裡氏替換原則
	依賴倒置原則
	接口分離原則
二、設計模式
三、代理模式
	定義與舉例
	靜态代理
	動态代理
	JDK動态代理
	CGLIB動态代理
四、面向切面程式設計(AOP)
	基本思想
	登入驗證
	基于RBAC的權限管理
	角色通路控制(RBAC)
	執行流程分析
	日志記錄
	日志記錄最佳實踐
	事務處理
	統一異常處理
五、工廠模式
	簡單工廠
	工廠方法
	抽象工廠
六、控制反轉IOC
七、觀察者模式
八、Zookeeper
	ZK簡述
	存儲結構
	znode
	znode中的存在類型
	應用場景
	統一命名服務
	負載均衡
	統一配置管理
	叢集管理
	伺服器動态上下線
	寫資料流程
	Leader選舉

## 資料結構與算法

一、樹
二、BST樹
三、BST樹
四、AVL樹
五、紅黑樹
六、B-樹
七、B+樹
八、字典樹
九、跳表
十、HashMap
	簡介
	内部實作
	存儲結構-字段
	功能實作-方法
	1.确定哈希桶數組索引位置
	2.分析HashMap的put方法
	3.擴容機制
	線程安全性
十一、ConcurrentHashMap
	鎖分段技術
	CAS無鎖算法
	實作方式
	存在的缺點
十二、ConcurrentLinkedQueue
	延遲更新tail節點
	延遲删除head節點
十三、Topk問題
	簡述
	解決方案
	實際運作
	(1)單機+單核+足夠大記憶體
	(2)單機+多核+足夠大記憶體
	(3)單機+單核+受限記憶體
	(4)多機+受限記憶體
	經常被提及的該類問題
	重複問題
十四、資源池思想
	作用
	線程池
	連接配接池
十五、JVM記憶體管理算法
	判斷對象是否存活
	引用計數法
	可達性分析算法
	垃圾回收算法
	标記-清除算法(Mark-Sweep)
	複制算法(Copying)
	标記-整理算法(Mark-Compact)
	分代收集算法(GenerationalCollection)
十六、容器虛拟化技術,Doocker思想
	為什麼會有docker
	docker理念
	實作方式
	docker的組成
	鏡像
	容器
	倉庫
	總結
十七、持續內建、持續釋出,jenkins
	持續內建
	手動部署
	自動部署

## 面試題舉例

一、設計一個分布式環境下全局唯一的發号器
	1、UUID
	2、資料庫自增長序列或字段
	3、資料庫sequence表以及樂觀鎖
	4、Redis生成ID
	5、Twitter的snowflake算法
二、設計一個帶有過期時間的LRU緩存
	問題描述
	問題分析
	過期時間實作
	維護一個線程
	惰性删除
三、設計一個分布式鎖
	什麼是分布式鎖?
	我們需要怎樣的分布式鎖?
	基于資料庫做分布式鎖
	1、基于樂觀鎖
	2、基于悲觀鎖
	基于Redis做分布式鎖
	1、基于redis的setnx()、expire()方法做分布式鎖
	2、基于redis的setnx()、get()、getset()方法做分布式鎖
	基于ZooKeeper做分布式鎖
	使用分布式鎖的注意事項
	分布式可重入鎖的設計
四、設計一個分布式環境下的統一配置中心
	配置中心概述
	演進中的配置
	配置中心之簡版
	配置中心之性能改進
	配置中心之可用性改進
           
《三年聯考五年模拟之網際網路三五年技術發展》總結,面試專用
《三年聯考五年模拟之網際網路三五年技術發展》總結,面試專用
《三年聯考五年模拟之網際網路三五年技術發展》總結,面試專用
《三年聯考五年模拟之網際網路三五年技術發展》總結,面試專用

繼續閱讀