Algorithm
并查集: java實現(xiàn)并查集,一種特殊的樹瓤荔,子節(jié)點指向父節(jié)點。rank優(yōu)化钥组、路徑優(yōu)化输硝。
Review
一、《為什么要學習 Apache Flink程梦?》
應用場景:
- flink-kafka ETL 數(shù)據(jù)清洗点把。(構(gòu)建實時數(shù)倉橘荠,實時索引build)
- 數(shù)據(jù)分析 (報表、大屏)
- 數(shù)據(jù)觸發(fā)(觸發(fā)器郎逃,告警)
二哥童、《有狀態(tài)流式處理引擎基石》
-
狀態(tài)容錯
- Flink如何保證精確一次如何保證?分布式快照 流程中安插checkpoint barrier,其中記錄source的position和流過的各個operator中的state褒翰。
-
狀態(tài)維護
- JVM Heap狀態(tài)后端 (on memery)
- RocksDB狀態(tài)后端(on disk)
-
Event-time處理
- 如何判定在某一個時間點數(shù)據(jù)都到齊了
狀態(tài)的保存與遷移
三贮懈、《DataStream API》
Tips/Technology
一、JVM知識體系復習
參考資料:https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md
二优训、Flink教程(更新中)
本系列課程由 Apache Flink Community China 官方出品朵你。旨在為具備一定大數(shù)據(jù)基礎(chǔ)、對Apache Flink感興趣的同學提供系統(tǒng)性的入門教程揣非,課程路徑為“基礎(chǔ)篇>>進階篇>>運維篇>>實戰(zhàn)篇>>源碼篇”抡医。地址
三、分布式鎖
- redis
現(xiàn)成實現(xiàn)框架:Redisson早敬,實現(xiàn)原理:
其中l(wèi)ua腳本中有兩個判斷:第一個判斷當前key是否有空閑鎖和是否過期忌傻,第二個判斷客戶端id,如果相同則為重入鎖搞监,數(shù)據(jù)結(jié)構(gòu)后+1水孩。
如果加鎖成功則啟動watch dog后臺進程,沒十秒掃描一次琐驴,如果當前持鎖的客戶端還繼續(xù)持有鎖則繼續(xù)延長時間荷愕。
缺點:集群或者主從結(jié)構(gòu)在master宕機的時候,客戶A持有鎖棍矛。還沒同步過去就宕機了,此時客戶端B去加鎖就成功了抛杨,客戶端A也認為自己持有鎖够委。
- zk
現(xiàn)成的實現(xiàn)框架 Curator
1.誰需要加鎖,誰就去zk上創(chuàng)建一個臨時順序節(jié)點
2.創(chuàng)建完成后怖现,判斷一下自己是不是最小的節(jié)點茁帽,如果是就拿鎖,不是就對上一個節(jié)點添加監(jiān)聽器
3.上一個節(jié)點結(jié)束自己就排到前面去了屈嗤,相當于一個排隊機制潘拨。
4.如果節(jié)點掛了,因為是臨時的zk會自動刪除節(jié)點饶号,完成釋放鎖的過程铁追。
Share
《什么是命》
最近這個時間一直感覺自己很迷茫∶4總有這樣一種感覺琅束,自己無論多么努力好像最后也就那么回事了扭屁,而開始慢悠悠的養(yǎng)老生活其實也不會差到哪里去,我相信很多中年人都會有這種體會涩禀,這就應該是命料滥。
如果一個人中了彩票或者家里拆遷了,我想這不是命好而運氣好艾船。運氣和命是不一樣的葵腹,世界上從不缺少有好運氣的人,并且每個人都會有走運和不走運的時候屿岂,但是命如果定了践宴,那些中獎的人就會在幾年內(nèi)把錢敗光,或者當一輩子守財奴一生也就那樣了雁社。運氣無非是在命運曲線上的微調(diào)而已浴井。
我個人是不信宿命論這一系列說法的。我認為命是由環(huán)境和性格決定的霉撵。環(huán)境很重要磺浙,生在現(xiàn)在肯定就比生在100年前要好。在同一個時代下徒坡,人的性格就是命運撕氧,因為它決定人看問題的角度和處理事情的方法。有的人保守喇完,有的人激進伦泥,有的人軟弱,有的人沖動.... 這些不同的性格會讓人在人生這條路上選擇不同的方向锦溪,選著選著命運的曲線就出來了不脯,而運氣不過是在這條曲線上的微調(diào)而已。我在和不同的人交流的時候刻诊,就能看到一個人未來的命運判斷他到底能不能成功防楷,不是我會算命,因為我感覺他做事的方式不會引導他向成功的方向前進则涯。
Research
JVM知識體系復習复局,多級JSON樹型結(jié)構(gòu),F(xiàn)link使用SQL語法解析粟判。