在大型網站技術架構中,涉及到許多的技術,這些技術是具備大型網站架構設計能力的前提和基礎,文末有該Java架構師資料原圖下載~
計算機基礎
- 操作系統(推薦現代操作系統)
- 編譯原理
- 計算機網絡
- 互聯網協議
- TCP/IP(推薦《TCP/IP協議族》)
- HTTP1.1/2.0
- HTTPS
- OAauth 2.0
- REST
集合框架(源碼)
- List
- ArrayList
- LinkedList
- Set:HashSet、TreeSet
- Map:TreeMap、ConcurrentHashMap
- Queue:ConcurrentLinkedQueue
- Stack
- Collection的synchronized等方法
工具類
- Google guava(推薦)
- Apache common lang/BeanUtils/Collctions/IO
- JSON
- fastjson
- gson
- jackson
框架
- Spring:IOC、AOP、常用註解
- SpringMVC
- Mybatis
- Shiro
- Netty
遠程調用(RPC)
- rmi
- Thrift
- Dubbo(Dubbox)
- 服務器治理,也可以作為微服務
- gRPC
構建
- Maven:推薦《Maven實戰》
- Gradle
安全
- 單項散列算法:MD5、SHA
- 對稱加密:DES
- 非對稱加密:RSA、HTTPS
JVM
- Java虛擬機(Hotspot實現)
- 類加載機制
- 內存模型
- GC:回收算法、垃圾收集器
- 調優
- 工具:jstack、jmap、jconsole
併發編程
- Executor框架
- Fork/join
- happen-before
- 數據結構:ConcurrentHashMap
- 線程池:參數設置、原理、拒絕策略
- 線程狀態
- Lock/synchronized
- 原子操作類
- 併發工具類:CountDownLatch、Semaphore、CyclicBarrier、Exchanger
- IO、BIO、AIO、NIO
數據
NoSQL:MongoDB
分佈式緩存:Memcached、Redis(推薦)
關係數據庫
- MySQL
- 引擎
- InnoDB(支持事務)
- 分庫分表
- Cobar
- Mycat
SQL優化
- 索引
- 主鍵索引
- 組合索引
- explain
- 存儲過程
SQL注入:使用#而不使用$
事務隔離級別(ACID)
- 原子性
- 一致性
- 隔離性
- 持久性
鎖
- 表鎖
- 行鎖
- 悲觀鎖
數據庫設計
範式
- 第一範式
- 第二範式
- 第三範式
- E-R圖
搜索引擎
Luecene
Solr
ElasticSearch
大數據
- Hadoop
- Hbase
- Spark
- Storm/JStorm
算法與數據結構
- 數組
- 鏈表
- 棧
- 隊列
- 樹
- 二叉樹
- B Tree/B+ Tree
- 紅黑樹
- 哈希
排序
- 內部排序
- 插入排序
- 直接插入排序
- 希爾排序
- 選擇排序
- 簡單選擇排序
- 堆排序
- 交換排序
- 冒泡排序
- 快速排序
- 歸併排序
- 基數排序
- 桶排序
- 外部排序
分佈式系統
- 從集中到分佈式
- 分佈式Session:Session複製、Session綁定、Session服務器(靠譜)
- 分佈式緩存:Redis、一致性Hash算法
- 數據庫:讀寫分離、主從熱備、分庫分表、一致性
- 分佈式事務、CAP、BASE、2PC/3PC
- 分佈式鎖
- Redisson
- 負載均衡、硬件、F5、軟件、LVS、Nginx
- 消息隊列:RabbitMQ、ZeroMQ、ActiveMQ、Kafka(推薦)
- 服務化:服務註冊與發現、Zookeeper
- 架構
- 微服務
- Spring Boot
- Dubbo
- RPC
- SOA
- 虛擬化
- Docker
以上架構師技能(高清原圖):資料獲取方式
關注+轉發後,私信關鍵詞 【架構師】即可獲取!
重要的事情說三遍,轉發、轉發、轉發後再發私信,才可以拿到!
閱讀更多 優知學院 的文章