第十五周

Algorithm

兩類查找問題(Set 和 Map)
Set用于查找有無 (檢查是否存在、去重問題)
Map用戶查找對(duì)應(yīng)關(guān)系(設(shè)置頻次)

349.Intersection of Two Arrays

350.Intersection of Two Arrays II

242.Valid Anagram

75.Sort Colors

202.Happy Number

1.Two Sum

219.Contains Duplicate II (set + 滑動(dòng)窗口)

Review

一乔妈、《Flink Table API編程》

講解了TableApi 比SQl 新增的易用性和功能性操作。

例如:

  • Columns Operation :AddColumns羡疗,AddOrReplaceColumns购桑,DropColumns,RenameColumns

  • Columns Function :withColumns(...)瑞凑,withoutColumns(...)

  • Map operation :def map(scalarFunction: Expression): Table

  • FlatMap operation :def flatMap(tableFunction: Expression): Table

  • Aggregate operation

  • TableAggregate operation

鏈接

二会喝、《Flink Runtime核心機(jī)制剖析》

  • Per-Job 和Sesson運(yùn)行模式區(qū)別:PerJob獨(dú)享Dispather和ResouceManager,按照需要申請(qǐng)資源玩郊,適合執(zhí)行時(shí)間長(zhǎng)的大作業(yè)肢执。Session則是共享Dispater、RM和資源的適合小作業(yè)译红。
image.png

鏈接

Tips/Technology

一预茄、Kafka的重要參數(shù)設(shè)置

  • Broker端
  1. log.dirs:指定Broker若干文件目錄,無默認(rèn)值侦厚。指定多塊盤的好處是提高讀寫性能耻陕,在1.1版本后又故障轉(zhuǎn)移能力。
  2. zookeeper.connect: 指定元數(shù)據(jù)zk路徑 CSV格式刨沦。
  3. listeners:多個(gè)Brokers相互通信的參數(shù)诗宣,告訴外部連接著是通過什么協(xié)議訪問主機(jī)名和端口訪問Kafka服務(wù)。(建議全部使用主機(jī)名想诅,否則可能發(fā)生無法連接的問題)
  • Topic級(jí)別
  1. auto.create.topics.enable:是否允許自動(dòng)創(chuàng)建Topic召庞。建議為false
  2. unclean.leader.election.enable:是否允許Unclean Leader選舉。建議為false来破,否則可能會(huì)丟數(shù)據(jù)篮灼。
  3. auto.leader.rebalance.enable:是否允許定期進(jìn)行Leader選舉。生產(chǎn)建議為false徘禁,換leader代價(jià)很高诅诱。
  • 數(shù)據(jù)留存
  1. log.retention.{hour|minutes|ms}:這是個(gè)“三兄弟”,都是控制一條消息數(shù)據(jù)被保存多長(zhǎng)時(shí)
    間送朱。從優(yōu)先級(jí)上來說ms設(shè)置最高娘荡、minutes次之、hour最低驶沼。
  2. log.retention.bytes:這是指定Broker為消息保存的總磁盤容量大小它改。默認(rèn)是-1就是不做限制,但防止云上惡意使用磁盤商乎,可以設(shè)置央拖。
  3. message.max.bytes:控制Broker能夠接收的最大消息大小。默認(rèn)不到1k,生產(chǎn)環(huán)境基本不夠用要調(diào)大鲜戒。
  • JVM端
  1. 指定堆大小 建議6G 使用方法: export KAFKA_HEAP_OPTS=--Xms6g --Xmx6g
  2. 指定GC參數(shù):jvm1.8建議G1回收器专控。使用方法:export KAFKA_JVM_PERFORMANCE_OPTS= -server -XX:+UseG1GC
  • 操作系統(tǒng)
  1. 文件描述符限制: ulimit -n 1000000 否則動(dòng)不動(dòng)就來Too many open files錯(cuò)誤。
  2. 文件系統(tǒng)類型:ext3遏餐,ext4伦腐,XFS,ZFS
  3. Swappiness:0或者1,防止kafka使用swap空間失都,使用1可以看到kafka性能急劇下降便于診斷問題柏蘑。
  4. 提交時(shí)間。

二粹庞、Kafka中的分區(qū)

  • 分布式系統(tǒng)中的叫法

Kafka中叫分區(qū)咳焚,在MongoDB和
Elasticsearch中就叫分片Shard,而在HBase中則叫Region庞溜,在Cassandra中又被稱作vnode革半。叫法不同但原理一樣。

  • 分區(qū)策略
  1. 輪詢策略
  2. 隨機(jī)策略
  3. 按消息key保序策略
  4. 自定義策略 實(shí)現(xiàn) org.apache.kafka.clients.producer.Partitioner

kafka中如果指定了Key流码,那么默認(rèn)實(shí)現(xiàn)按消息鍵保序
策略又官;如果沒有指定Key,則使用輪詢策略漫试。

三六敬、Kafka中的壓縮算法

  • 指定方式: props.put("compression.type", "gzip");在生產(chǎn)端指定會(huì)卸載消息中如何Producer端壓縮、Broker端保持驾荣、Consumer端解壓縮觉阅。
  • 算法對(duì)比


    Facebook Zstandard提供

四、Kafka數(shù)據(jù)零丟失

  • 丟失場(chǎng)景
  1. 生產(chǎn)者程序丟失:程序已經(jīng)發(fā)送秘车,kafka沒有保存典勇。原因是kafka發(fā)消息都是異步的,如果消息太大叮趴,或者網(wǎng)絡(luò)抖動(dòng)就沒發(fā)上去割笙。
  2. 消費(fèi)者程序丟數(shù)據(jù):消費(fèi)者自動(dòng)提交,kafka就認(rèn)為已經(jīng)被消費(fèi)了眯亦。
  • 最佳實(shí)踐
  1. 生產(chǎn)者Api不要用producer.send(msg)伤溉,而要使用producer.send(msg, callback)。并設(shè)置retries使其自動(dòng)重試妻率。
  2. 設(shè)置acks=all 乱顾,保證所有副本Borker都接受到消息,該消息才算提交宫静。
  3. 設(shè)置replication.factor >= 3走净,保證有充足的副本數(shù)
  4. 設(shè)置unclean.leader.election.enable = false券时。防止Broker落后Leader太多,然后被選上Leader導(dǎo)致數(shù)據(jù)丟失伏伯。
  5. 確保消息消費(fèi)完成再提交橘洞。Consumer端有個(gè)參數(shù)enable.auto.commit,最好把它設(shè)置成false说搅,并采用手
    動(dòng)提交位移的方式炸枣。
  6. 設(shè)置min.insync.replicas > 1。這依然是Broker端參數(shù)弄唧,控制的是消息至少要被寫入到多少個(gè)副本才算
    是“已提交”适肠。設(shè)置成大于1可以提升消息持久性。在實(shí)際環(huán)境中千萬不要使用默認(rèn)值1候引。
  7. 確保replication.factor > min.insync.replicas侯养。如果兩者相等,那么只要有一個(gè)副本掛機(jī)背伴,整個(gè)分區(qū)就無
    法正常工作了沸毁。我們不僅要改善消息的持久性峰髓,防止數(shù)據(jù)丟失傻寂,還要在不降低可用性的基礎(chǔ)上完成。推
    薦設(shè)置成replication.factor = min.insync.replicas + 1携兵。

五疾掰、Mysql整體架構(gòu)

mysql架構(gòu)

六、事務(wù)隔離機(jī)制

  • 讀未提交 (read uncommitted):一個(gè)事務(wù)還沒提交時(shí)徐紧,它做的變更就能被別的事務(wù)看到静檬。
  • 讀提交 (read committed):一個(gè)事務(wù)提交之后,它做的變更才會(huì)被其他事務(wù)看到并级。
  • 可重復(fù)讀 (repeatable read):一個(gè)事務(wù)執(zhí)行過程中看到的數(shù)據(jù)拂檩,總是跟這個(gè)事務(wù)在啟動(dòng)時(shí)看到的數(shù)據(jù)是一致的。當(dāng)然在可重復(fù)讀隔離級(jí)別下嘲碧,未提交變更對(duì)其他事務(wù)也是不可見的稻励。
  • 串行化(serializable ),顧名思義是對(duì)于同一行記錄愈涩,“寫”會(huì)加“寫鎖”望抽,“讀”會(huì)加“讀鎖”。當(dāng)出現(xiàn)讀寫鎖沖突的時(shí)候履婉,后訪問的事務(wù)必須等前一個(gè)事務(wù)執(zhí)行完成煤篙,才能繼續(xù)執(zhí)行。

Oracle默認(rèn)隔離級(jí)別是 READ-COMMITTED

MySQL默認(rèn)隔離級(jí)別是 REPEATABLE-READ

實(shí)現(xiàn)原理:每條記錄在更新的時(shí)候都會(huì)記錄一條回滾操作毁腿,這個(gè)數(shù)據(jù)記錄在回滾日志中辑奈。當(dāng)在查詢的時(shí)候不同事務(wù)會(huì)有不同的read-view苛茂。

Share

《薄世寧:醫(yī)學(xué)通識(shí)》

  • 生命是具有自我修復(fù)能力的,一切的醫(yī)療本質(zhì)都是支持自我修復(fù)身害,包括給自我修復(fù)爭(zhēng)取時(shí)間味悄,等他自我修復(fù)發(fā)揮作用。
  • 我們?yōu)槭裁磿?huì)生菜臁侍瑟?答案就是科學(xué)發(fā)達(dá)了,我們活得壽命超過了細(xì)胞分裂的次數(shù)丙猬,疾病是人類進(jìn)化的遺產(chǎn)涨颜。
  • 要堅(jiān)信任何病都有病理基礎(chǔ),不是憑空產(chǎn)生的茧球,那么找到治病的辦法只是時(shí)間問題庭瑰。
  • 疾病不是突然發(fā)生的,而是突然發(fā)現(xiàn)的抢埋。
  • 真正的健康是暴露于細(xì)菌的危險(xiǎn)之下弹灭,還依然健康。

Research

Flink 雙流join,Kafka分區(qū)及參數(shù)揪垄,Mysql知識(shí)鞏固

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末穷吮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子饥努,更是在濱河造成了極大的恐慌捡鱼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酷愧,死亡現(xiàn)場(chǎng)離奇詭異驾诈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)溶浴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門乍迄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人士败,你說我怎么就攤上這事闯两。” “怎么了拱烁?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵生蚁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我戏自,道長(zhǎng)邦投,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任擅笔,我火速辦了婚禮志衣,結(jié)果婚禮上屯援,老公的妹妹穿的比我還像新娘。我一直安慰自己念脯,他們只是感情好狞洋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绿店,像睡著了一般吉懊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上假勿,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天借嗽,我揣著相機(jī)與錄音,去河邊找鬼转培。 笑死恶导,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浸须。 我是一名探鬼主播惨寿,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼删窒!你這毒婦竟也來了裂垦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤易稠,失蹤者是張志新(化名)和其女友劉穎缸废,沒想到半個(gè)月后包蓝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶社,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年测萎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亡电。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡硅瞧,死狀恐怖份乒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腕唧,我是刑警寧澤或辖,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站枣接,受9級(jí)特大地震影響颂暇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜但惶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一耳鸯、第九天 我趴在偏房一處隱蔽的房頂上張望湿蛔。 院中可真熱鬧,春花似錦县爬、人聲如沸阳啥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽察迟。三九已至,卻和暖如春耳高,著一層夾襖步出監(jiān)牢的瞬間卷拘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工祝高, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栗弟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓工闺,卻偏偏與公主長(zhǎng)得像乍赫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陆蟆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容