g2f
工程相關 :
一 版本控制 git
1.Git 協(xié)議 : 四種 local(局域網(wǎng)) ssh http git(不推薦 暴露9481)
拉去使用http啞協(xié)議,然后push使用 ssh 來自 StackFlow
注:http Smart 協(xié)議 是基于 CGI 配合GIT git-http-backend 腳本進行使用,配置較復雜,現(xiàn)在一般不會這么去做,而是采用gitlab 、gogs 之類的web管理進行代替
2. merge 和 rebase 區(qū)別 依賴commit (https://blog.csdn.net/liuxiaoheng1992/article/details/79108233)
合并相關命令一共存在共同祖先以及指針的概念。
git merge : 祖先 ,當前分支與要被合并分支的公共祖先commit ,當前分支公共祖先最新commit,被合并分支公共祖先最新commit。三者合一
git rebase: 祖先,當前分支與要合并分支的公共祖先commit的修改,master指針指向被合并分支最新更改commit,然后放到當前分支與要合并分支的公共祖先commit的修改
二 maven,sornar,idea,jenkins,nexus
1.maven 【默認規(guī)則】當中的測試類又做了約定,約定必須是Test開頭的類名與test 開頭的方法才會執(zhí)行【也可以定制規(guī)則】 sonar做測試覆蓋 jacoco 插件
1. Maven 生命周期 與插件
clean Lifecycle :清理生命周期,用于于清理項目
default Lifecycle:默認生命周期,用于編譯、打包、測試、部署等
site Lifecycle 站點文檔生成,用于構建站點文檔
2.依賴規(guī)則
依賴傳播、依賴優(yōu)先原則、可選依賴、排除依賴、依賴范圍
3.聚合繼承
2.idea 快捷鍵
3.jenkins 聊聊 自己學的自動化腳本 Mac vagrant 上有
二.運維 linux,nginx,tomcat,
1.linux
1.目錄操作 crud
2.文件操作 crud
tail -100 ./logs/catalina.out | grep 'copy' —color 與 tail -f
top, free, df -h, ps -ef , env,netstat -tuln,route -n
vim技巧
linux 內核 TODO 用戶空間 內核空間
2.nginx 架構圖
1.架構 兩個進程 ,主進程 加載配置,啟動工作進程,聯(lián)系netty。非停升級。
子進程(可配置多個work),核心模塊 網(wǎng)絡讀寫,存儲讀寫以及 傳輸。 run-loop 定義 mail,http,config模塊。
高并發(fā),異步非阻塞。 底層c++
2.使用
1.動靜分離,黑白名單,防盜鏈,日志配置,下載限速
2.反向代理
Upstream a {} proxy_pass {http://a}
參數(shù) weigtht ,權重 負載均衡算法。ll+weight. ip_hash session 一致性. (Ur_hash 最小鏈接,最小響應)
參數(shù) max_fails 最大失敗次數(shù) ,踢出
fail_timeout 踢出后重新探測時間
backup 備用服務
max_conns 允許最大連接數(shù)
slow_start 當節(jié)點恢復,不立即加入,而是等待 slow_start 后加入服務對列。
3.高速緩存 proxy_cache_path 模塊配置 以及 ng_cache_purge引入清除
3.tomcat 架構圖 (責任鏈)
1.IO 模型。4種
2.NIO 和 IO區(qū)別。源碼 JIOEndPoint 與 NioEndPoint 多個poller線程 多路復用 多個線程回調通信
三.ssm
1.mybatis 架構圖 組件 按著jdbc方式 源碼 太熟悉了
Spring 和 springmvc。
2.Spring
IOC
1.為什么使用 spring ioc
2.創(chuàng)建bean的幾種方式
基于Class構建
構造方法構建
靜態(tài)工廠方法創(chuàng)建
FactoryBean創(chuàng)建
3.依賴注入方式
set方法注入
構造方法注入
自動注入(byName、byType)
方法注入(lookup-method)
4.Bean創(chuàng)建流程
AOP??椚霕I(yè)務邏輯。 讀寫數(shù)據(jù)源,日志,接口限流等。
切面,切點, 連接點,通知。 默認jdk代理,可指定cglib。
jdk和cglib的不同,一個接口一個實現(xiàn)。 故 this 在 jdk中 不能使用,因為this是 接口和proxy, 在cglib中能使用,因為繼承
聲明式事務
acid ,因為高并發(fā)完全達到acid 只能是串行化,但是帶來很多負面影響。 故出現(xiàn) 隔離級別
讀未提交【臟讀,不可重復讀,幻讀】,讀已提交【不可重復讀,幻讀】,可重復讀【幻讀】,串行化。mysql默認 可重復讀,oracle 默認是讀已提交
傳播行為 required。required_new ,not_support ,同一個類 默認 代理只走一個(aop)可通過暴露和AopContext 達到目的
3.springMVC流程 架構圖
(5天)5. juc,jdk集合,
(10天)6.算法 4 設計模式 2 jvm mysql相關 2
JUC
為啥會用juc
1 多線程---單線程
2 共享變量---線程私有
3 原子操作---原子類i++ i=i+1
多線程的目的,就是最大限度地利用 cpu 資源,比如說1個線程一個io操作,另一個線程此時可以利用cpu。
2.線程狀態(tài)圖 架構圖
Thread,Runnable,Callable
3.線程池 工作原理 及架構圖, 吹設計模式
fixed cache single
- 主存 跟不上 cpu 頻率。出現(xiàn)緩存,緩存不同步 MESI解決
5.java 內存模型 出現(xiàn)工作內存。
同步 就是一個原子操作
線程八鎖
原子性
synchronized 幾種使用及底層jvm監(jiān)視器,
lock 重入鎖 condition 通信 AQS同步器 隊列加雙向鏈表,UNSAFE JNI
countdownlatch semaphore
cas ABA
可見性 volaite順序性 。happen-before 指令重排。單例【】
定時線程池 默認與 scheduleAtFixedRate。scheduleWithFixedDelay 的相互區(qū)別 ,一個等待停止 一個不等待
jdk相關
集合架構圖。比較器兩種
1.hashMap 1.7 1.8
數(shù)據(jù)結構 默認大小, 因子 ,線程是否安全,null值 ,擴容2倍 , 1.8 深度為8 紅黑樹
2.hashTable 與 concurrentHashMap( IOC容器)
3.ArrayList.copyOnWriteArraylist 默認10 擴容 手寫
jvm相關
1.JVM 組成。 運行時架構圖
2.類加載過程 【加載,連接與校驗,準備 初始化。】 及 類加載器 全盤委托機制【相關類默認】雙親委派 【沙箱安全,重復加載】
3.棧 結構
4.堆 結構
5.調優(yōu)jvm jinfo。jstat。jmap。jstack。jvisualvm
6.堆 回收算法 分段GC策略
首先分配到伊甸園區(qū)
大對象直接分配到老年代 分配擔保機制
多次yangGC 幸存 分配到老年代 15歲
7.如何判斷對象被回收,1.引用計數(shù),2.可達性算法GCRoot 與 finalize 兩次標記
8.幾種收集器 及特點
9.調優(yōu)步驟 及 常用參數(shù)
mysql 相關
1.查詢 由機器磁盤原理, 巡道 (非常慢)和 旋轉。故出現(xiàn)索引
2.索引 myisam 和 innodb 的結構 主鍵索引 非主鍵索引 對應區(qū)別 聯(lián)合索引
3.索引優(yōu)化
算法相關 TODO
(30天)4.分布式相關 netty,dubbo,zk, 10
redis,rocketmq,kafka ,8 elk,ss,mongodb 10 協(xié)議網(wǎng)關等 2
1.Netty
netty 創(chuàng)建和啟動流程,架構圖
tcp粘包問題處理,
序列化
空輪訓
線程中的 雙向鏈表結構
內存分配 的 二叉樹
2.zk
分布式 cap。base?;究梢?軟狀態(tài) 最終一致
zab 聯(lián)系 一致性協(xié)議 2pc 3pc paxos
事件通知
選舉算法.
角色
節(jié)點類型
集群模式
水平擴展
3.dubbo
分布式演變
dubbo架構圖
dubbo協(xié)議
dubbo組件
dubbo注冊中心
在生產端可配置消費端的參數(shù)
1)timeout:方法調用超時
2)retries:失敗重試次數(shù),默認重試 2 次
3)loadbalance:負載均衡算法,默認隨機
4)actives 消費者端,最大并發(fā)調用限制
Dubbo默認序列化 及其他序列化
dubbo默認通信 及 其他通信 Mina
dubbo負載均衡算法
多種實現(xiàn)分組
同步阻塞調用,及異步調用流程
提供者失效踢出
管理控制臺作用
4.redis
Redis 快的原因
redis 恢復
redis 緩存淘汰策略
redis 實用場景。redis分布式鎖
redis集群原理。槽位,重定向跳轉,網(wǎng)絡抖動
5.rocketmq
架構圖
生產端 消息類型 同步 異步
消費端 如何消費(push pull )順序消費,重復消費,
服務端 NameServ 和 Broker
6.kafka
選舉
模式:單播 多播
存儲 : 元信息 zk,消息信息 文件
發(fā)送方式 ,分區(qū),hash,輪訓
選舉策略
生產流程 同步異步生產,
消費 是否自動提交消費
7.elk
Nignx 白名單 Htppasswd
8.ss
9.mongodb
(待定)六.微服務 springboot spirngcloud,docker 1。
九.(待定)項目