那些Java架構師必知必會的技術

  • 2019 年 11 月 11 日
  • 筆記

Java基礎

並發編程專題

Executors線程池

並發編程 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

分佈式消息隊列 – 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

分佈式數據擴容 – 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框架

分佈式解決方案

微服務專題

漫談微服務架構

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調優

Tomcat調優

  • 探查Tomcat的運行機制及框架
  • 分析Tomcat線程模型
  • Tomcat體系結構解讀
  • Tomcat啟動流程分析
  • Tomcat對Http請求的處理流程分析
  • Tomcat核心組件認識
  • Tomcat性能調優
  • Tomcat連接並發參數解讀
  • Tomcat server.xml詳解

Mysql調優

大數據處理

  • Flink架構、原理與部署測試

源碼分析專題

常用設計模式

Spring5

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

隨筆雜文

個人博客

我思故我在