Algorithm
鏈表問題
- 鏈表在找不到前一個(gè)節(jié)點(diǎn)的時(shí)候,可以用賦值操作解決問題
- 鏈表遇到需要找位置進(jìn)行操作的時(shí)候可以使用雙指針
二叉樹和遞歸
- Maximum Depth of Binary Tree
- Minimum Depth of Binary Tree
- Invert Binary Tree
Review
Tips/Technology
一、Win10家庭版安裝docker
說明: Docker可以支持在mac、windows、linux上安裝。但是在windows系統(tǒng)中Docker目前僅有win10專業(yè)版和企業(yè)版的安裝包,win7/win8/win10家庭版需要通過docker toolbox來安裝。
下載dockerToolbox:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
檢查BIOS是否開啟虛擬機(jī)化
安裝DockerToolbox
雙擊 Docker Quickstart Terminal 會(huì)自動(dòng)下載boot2docker環(huán)境(如果下載過慢可手動(dòng)下載放到C:\Users${USER}.docker\machine\cache目錄下)
如果需要使用阿里云加速,需要注冊(cè)阿里云后生成自己的鏡像加速器 https://cr.console.aliyun.com/cn-beijing/instances/mirrors
修改docker安裝machine的位置 設(shè)置MACHINE_STORAGE_PATH環(huán)境變量,然后重啟docker quickstart
二、Maven打包優(yōu)化
1、增加跳過測(cè)試代碼的編譯命令-Dmaven.test.skip=true ;
2、增加編譯-Dmaven.compile.fork=true 參數(shù),用以指明多線程進(jìn)行編譯;
3、如果你用的Maven是3.×以上版本,可以增加-T 1C 參數(shù),表示每個(gè)CPU核心跑一個(gè)工程;
完整命令如下
mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true
三、Flink中的雙流join
- FlinkSQL 對(duì)join的支持情況
Apache Flink目前支持INNER JOIN和LEFT OUTER JOIN(SELF 可以轉(zhuǎn)換為普通的INNER和OUTER) 而且必須有強(qiáng)關(guān)聯(lián) 關(guān)鍵字 ON。 - 數(shù)據(jù)Shuffle和保存
不論是INNER JOIN還是OUTER JOIN 都需要對(duì)左右兩邊的流的數(shù)據(jù)進(jìn)行保存,將數(shù)據(jù)保存到兩個(gè)State中存儲(chǔ)。
LeftEvent到來存儲(chǔ)到LState,RightEvent到來的時(shí)候存儲(chǔ)到RState;
LeftEvent會(huì)去RightState進(jìn)行JOIN,并發(fā)出所有JOIN之后的Event到下游;
RightEvent會(huì)去LeftState進(jìn)行JOIN,并發(fā)出所有JOIN之后的Event到下游。
四、分布式技術(shù)選型 spring cloud 還是 dubbo
選型對(duì)比維度:
1)整體解決方案
Dubbo沒有自帶的配置中心,注冊(cè)中心基于zookeeper
springcloud自身相對(duì)比較完善,有注冊(cè)中心、配置中心、負(fù)載均衡、服務(wù)治理
2)底層調(diào)用
Dubbo基于rpc,速度快
springcloud基于http,訪問相對(duì)dubbo慢
3)技術(shù)前沿性(趨勢(shì))
Dubbo已經(jīng)比較成熟
springcloud技術(shù)相對(duì)前緣
4)開發(fā)語言及開放度
都是Java,開源
5)社區(qū)活躍度
Dubbo官方已沒有維護(hù),但基本上能碰到的問題,網(wǎng)上能找到解決方案
springcloud英文的,資料比較少。
Share
Research
docker入門、Flink join 、分布式