那些Java架構師必知必會的技術
- 2019 年 11 月 11 日
- 筆記
Java基礎
- Java 7 和 Java 8 中的 HashMap原理解析
- Java7 和 Java8 中的 ConcurrentHashMap 原理解析
- Java中自定義註解
- Java函數式編程和lambda表達式
- TCP三次握手原理,你真的了解嗎?
- 「三次握手,四次揮手」你真的懂嗎?
- 程式設計師你為什麼這麼累 | 編碼規範
- 一個正則表達式引發的血案
- 全解史上最快的JOSN解析庫 – alibaba Fastjson
- 深入分析 Java SPI 機制和原理
並發編程專題
Executors執行緒池
- 執行緒池ThreadPoolExecutor
- 執行緒數究竟設多少合理
並發編程 Lock 鎖
- Lock
- 可重入鎖Reetrantlock
- 可重入讀寫鎖ReetrantReadWriteLock
- Condition
- ReadWriteLock
- LockSupport
並發類編程工具
- CountDownLatch
- CyclicBarrier
- Semaphore
- Exchange
並發編程容器collections
- 並發Queue:BlockingQueue
- Map:ConcurrentHashMap、HashMap、HashTable
- 並發List Set:CopyOnWriteArrayList、CopyOnWriteArraySet、
- ArrayList、 LinkedList
- ConcurrentHashMap為何如此優秀?
記憶體模型
- Condition
- 簡單卻強大的 CAS
- AQS的原理淺析
- 重排序、可見性、順序一致性
- happens-before詳解
- Synchronized詳解
- Volatile詳解
- ThreadLocal詳解
分散式專題
分散式協調Zookeeper
- Zookeeper快速上手使用
- Zookeeper集群部署
- Zookeeper應用場景深入分析
- Zookeeper的znode watcher ACL、
- 客戶端API詳解
- Zookeeper客戶端源碼分析
- Zookeeper的日誌與監控
- 搭建3個節點的Zookeeper集群
- 深入分析Zookeeper在Disconf配置中心的應用
- 基於Zookeeper的分散式鎖解決方案
- Zookeeper Watcher核心機制深入源程式碼分析
- Zookeeper 集群升級、遷移
- 基於Zookeeper實現分散式伺服器動態上下線感知
- 深入分析Zookeeper Zab協議及選舉機制源程式碼
分散式框架Dubbo
- Dubbo管理中心及監控平台安裝部署
- Dubbo分散式伺服器模組劃分(領域驅動)
- 基於Dubbo的分散式系統架構實戰
- Dubbo負載均衡策略分析
- Dubbo服務調試之服務只訂閱及服務只註冊配置
- Dubbo服務介面的設計原理
- Dubbo設計原理及源程式碼分析
- 基於Dubbo構建大型分散式電商平台實戰雛形
- Dubbo容錯機制及高擴展性分析
分散式消息隊列 – RabbitMQ
- RabbitMQ快速上手使用
- RabbitMQ消息發送機制詳解
- RabbitMQ消息路由機制分析
- RabbitMQ消息確認機制分析
- RabbitMQ高可用集群部署實踐
- 互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失:第一篇
- 互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失:第二篇
- 互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失:第三篇
- 互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失:第四篇
分散式消息隊列 – Kafka
- Kafka基於Zookeeper搭建高可用集群實戰
- Kafka消息處理過程剖析
- Java客戶端實現Kafka生產者與消費者實例
- Kafka的副本機制及選舉原理剖析
- 基於Kafka實現應用日誌實時上報統計分析
分散式消息隊列 – RocketMq
- 待定
分散式快取Redis
- 快取擊穿、穿透、雪崩預防策略
- 精通Redis的數據結構
- Redis主從複製原理及無磁碟複製分析
- Redis管道模式詳解
- Redis快取與資料庫一致性解決方案
- 基於Redis實現分散式鎖
- Redis中AOF和RDB持久化策略原理
- Redis讀寫分離架構
- Redis哨兵架構及數據丟失問題分析
- Redis Cluster數據分布演算法之Hash Slot
- Redis使用常見問題及性能優化
- Redis高可用及高伸縮架構實戰
- Redis批量查詢優化
- Redis高性能集群之Twemproxy Or Codis
搜索引擎 – Elasticsearch
- 全文搜索引擎 ElasticSearch 還是 Solr?
- Elasticsearch 技術分析(一): 基礎入門
- Elasticsearch 技術分析(二): 索引映射Mapping問題
- Elasticsearch 技術分析(三): 索引別名Aliases問題
- Elasticsearch 技術分析(四): 分散式工作原理
- Elasticsearch 技術分析(五):如何通過SQL查詢Elasticsearch
- Elasticsearch 技術分析(六): 自動發現機制 – Zen Discoveryedit
- Elasticsearch 技術分析(七): Elasticsearch 的性能優化
- Elasticsearch 技術分析(八):剖析 Elasticsearch 的索引原理
- Elasticsearch 技術分析(九):Elasticsearch基礎和原理總結
分散式數據擴容 – MyCat
- Mycat讀寫分離
- Mycat水平切分
- Mycat垂直切分
- 基於Mycat分庫分表策略剖析
- Mycat全局序列號
- Mycat全局表 ER表 分片策略分析
- Mycat高可用架構方案實踐
- 資料庫中間件初始Mycat
- 基於Mycat實現mysql資料庫讀寫分離
- 基於Mycat實戰之資料庫切分策略剖析
- Mycat全局表、Er表、分片策略分析
- Sharding-jdbc
數據存儲
- Nosql簡介及Mongodb基本概念
- MongoDB支援的數據類型分析
- MongoDB可視化客戶端及Java api實踐
- 手寫基於MongoDB的Orm框架
- MongoDB企業級集群解決方案
- MongoDB聚合、索引及基本執行命令
- MongoDB數據分片、轉存及恢復策略
- Mysql主從複製及讀寫分離
- Mysql+Keepalived實戰雙主高可用方案實踐
- Mysql高性能解決方案之分庫分表
後台服務
- 基於Openresty部署應用層Nginx及Nginx+Lua實踐
- Nginx反向代理伺服器及負載均衡伺服器配置實戰
- 利用Keepalived+Nginx實踐Nginx高可用方案
- 基於Nginx實現訪問控制、連接限制
- Nginx動靜分離實戰
- Nginx Location、Rewrite等語法配置及原理分析
- Nginx提供Https服務
- 基於Nginx+Lua完成訪問流量是實時上報Kafka實戰
高性能Nio框架
- IO的基本概念,Nio、Aio、Bio深入分析
- Nio的核心設計思想
- Netty產生的背景及應用場景分析
- 基於Netty實現高性能Im聊天
- 基於Netty實現dubbo多協議通訊支援
- Netty無鎖化串列設計及高並發處理機制
- 手寫實現多協議Rpc框架
分散式解決方案
- 分散式全局ID生成方案
- 分散式事務解決方案實戰
- 基於分散式架構下分散式鎖的解決方案
- 高並發下的服務降級、限流實戰
- 分散式架構下實現分散式定時調度
- 分散式系統中session一致性問題
- 分散式系統中一致性哈希演算法
- 分散式系統中介面的冪等性
- 終於有人把「TCC分散式事務」實現原理講明白了!
微服務專題
漫談微服務架構
- SOA架構和微服務架構之間的區別和聯繫
- 如何設計微服務及其設計原則
- 解惑Spring Boot流行因素及能夠解決什麼問題
- 什麼是Spring Cloud,為何要選擇Spring Cloud
- 從單體架構升級到微服務,在程式碼層面應注意的一些問題
SpringBoot框架
- Springboot與微服務之間的關係
- Springboot熱部署
- SpringBoot快速上手應用
- SpringBoot核心配置詳解
- SpringBoot集成MyBatis Redis ActiveMQ、
- RabbitMQ Dubbo等
- SpringBoot計策模板引擎Thymeleaf Freemarker
- SpringBoot核心註解詳解
- Spring啟動器starter原理深入分析
- Springboot集成Mybatis實現多數據源路由實戰
- Springboot集成Dubbo
- Springboot集成Redis快取
- Springboot集成Swagger2構建Api管理及測試體系
- Springboot實現多環境配置動態解析
Spring Cloud組件
- 拜託!面試請不要再問我Spring Cloud底層原理
- Eureka註冊中心
- Ribbon集成REST實現負債均衡
- Fegion聲明式服務調用
- Hystrix服務熔斷降級方式
- Zuul實現微服務網關
- Config分散式統一配置中心
- Sleuth調用鏈路跟蹤
- Bus消息匯流排
- 基於Hystrix實現介面降級實戰
- Springboot集成Spring Cloud實現統一整合方案
Docker虛擬化
- Docker的鏡像、倉庫、容器
- Docker File 構建LNMP環境部署個人部落格WordPress
- Docker網路組成、路由互聯、Openvswitch
- 基於Swarn構建Docker集群實戰
- Kubernetes簡介
性能優化
JVM調優
- JVM記憶體模型
- GC方法
- GC收集器及使用場景
- 理解GC日誌
- 實戰MAT分析dump文件
- 系統運行緩慢,CPU 100%,以及Full GC次數過多問題的排查思路
Tomcat調優
- 探查Tomcat的運行機制及框架
- 分析Tomcat執行緒模型
- Tomcat體系結構解讀
- Tomcat啟動流程分析
- Tomcat對Http請求的處理流程分析
- Tomcat核心組件認識
- Tomcat性能調優
- Tomcat連接並發參數解讀
- Tomcat server.xml詳解
Mysql調優
- 必須掌握的Mysql優化指南
- 理解Mysql底層B+樹機制
- SQL執行計劃詳解
- 索引優化詳解
- SQL語句優化
大數據處理
流框架Flink
- Flink架構、原理與部署測試
源碼分析專題
常用設計模式
Spring5
- IOC/DI
- IOC容器設計原理及高級特性
- AOP設計原理
- FactoryBean與BeanFactory
- Spring Bean的生命周期
- Spring事務處理機制
- 面試中被問Spring循環依賴的三種方式!!!
- 手寫SpringMVC框架
Mybatis
- 程式碼自動生成器:Generateor
- Mybatis關聯查詢,嵌套查詢
- 一級快取、二級快取使用場景及選擇策略
- 分析Mybatis的動態代理的真正實現
Dubbo
- 服務註冊
- 負載均衡
Springboot
- @SpringBootApplication
- 待定
Eureka
- 待定
Zuul
- 待定
Netty
- 待定
演算法
Python語言
- 待定
Go語言
- 待定
區塊鏈
- 待定
機器學習
- 待定
工程化與工具
Maven
- 生成可執行jar、理解scope生成最精確的jar
- 類衝突、包依賴NoClassDefFoundError問題定位及解決
- 架構師必備之Maven生成Archetype
- Nexus使用、上傳、配置
- 對比Gradle
Git
- 什麼是Git以及Git工作原理
- Git常用命令(避坑教學)
- Git衝突怎麼引起的,如何解決
- 架構師的職責:Git Flow規範團隊Git使用規範
Jekins
- 搭建Jenkins自動部署環境
- Jenkins集成maven、git實現自動部署
- test/pre/pro 多環境發布
- Jenkins多環境配置、許可權管理及插件使用
IntelliJ IDEA
- IntelliJ IDEA(一) :安裝與破解
- IntelliJ IDEA(二) :面板介紹
- IntelliJ IDEA(三) :常用快捷鍵
- IntelliJ IDEA(四) :Settings(上)
- IntelliJ IDEA(五) :Settings(中)
- IntelliJ IDEA(六) :Settings(下)
- IntelliJ IDEA(七) :Project Structure
- IntelliJ IDEA(八) :Git的使用
- IntelliJ IDEA(九) :酷炫插件系列
- IntelliJ IDEA(十) :常用操作
- IntelliJ IDEA(十一) :Debug的使用
- IntelliJ IDEA 2018.3 重大升級,哪些功能打動了你?
- 通過IDEA快速定位和排除依賴衝突