Java進階(七)正確理解Thread Local的原理與適用場景
本文結(jié)合實例介紹了 Thread Local 的原理與實現(xiàn)方法,并分析了其適用場景。
深入淺出Zookeeper(二) 基于Zookeeper的分布式鎖與領(lǐng)導(dǎo)選舉
發(fā)表于
|
更新于
|
分類于
zookeeper
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
825
|
字數(shù)
3,665
本文結(jié)合實例演示了使用Zookeeper實現(xiàn)分布式鎖與領(lǐng)導(dǎo)選舉的原理與具體實現(xiàn)方法。
Kafka設(shè)計解析(八)- Exactly Once語義與事務(wù)機制原理
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
1309
|
字數(shù)
8,789
本文介紹了Kafka實現(xiàn)事務(wù)性的幾個階段——正好一次語義與原子操作。之后詳細分析了Kafka事務(wù)機制的實現(xiàn)原理,并介紹了Kafka如何處理事務(wù)相關(guān)的異常情況,如Transaction Coordinator宕機。最后介紹了Kafka的事務(wù)機制與PostgreSQL的MVCC以及Zookeeper的原子廣播實現(xiàn)事務(wù)的異同
機器學(xué)習(xí)(三) 關(guān)聯(lián)規(guī)則R語言實戰(zhàn) Apriori
發(fā)表于
|
更新于
|
分類于
machine learning
,
機器學(xué)習(xí)
,
AI
|
評論次數(shù)
0
|
閱讀次數(shù)
491
|
字數(shù)
9,085
本文由尿布與啤酒的精典案例開始介紹了關(guān)聯(lián)規(guī)則的起源及核心概念,并詳細闡述了Apriori算法的原理,生成頻繁項目集的具體過程及抽取強關(guān)聯(lián)規(guī)則的方法。之后結(jié)合案例介紹了構(gòu)建FP樹的具體步驟及從FP樹挖掘頻繁項目集的過程。最后給出了在R語言中使用Apriori算法進行關(guān)聯(lián)規(guī)則挖掘的實戰(zhàn)案例。
深入淺出Zookeeper(一) Zookeeper架構(gòu)及FastLeaderElection機制
發(fā)表于
|
更新于
|
分類于
zookeeper
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
1548
|
字數(shù)
6,279
本文介紹了Zookeeper的架構(gòu),并組合實例分析了原子廣播(ZAB)協(xié)議的原理,包括但不限于Zookeeper的讀寫流程,F(xiàn)astLeaderElection算法的原理,ZAB如何保證Leader Failover過程中的數(shù)據(jù)一致性。
Kafka設(shè)計解析(七)- Kafka Stream
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
6699
|
字數(shù)
8,633
本文介紹了Kafka Stream的背景,如Kafka Stream是什么,什么是流式計算,以及為什么要有Kafka Stream。接著介紹了Kafka Stream的整體架構(gòu),并行模型,狀態(tài)存儲,以及主要的兩種數(shù)據(jù)集KStream和KTable。并且分析了Kafka Stream如何解決流式系統(tǒng)中的關(guān)鍵問題,如時間定義,窗口操作,Join操作,聚合操作,以及如何處理亂序和提供容錯能力。最后結(jié)合示例講解了如何使用Kafka Stream。
Java進階(六)從ConcurrentHashMap的演進看Java多線程核心技術(shù)
本文分析了HashMap的實現(xiàn)原理,以及resize可能引起死循環(huán)和Fast-fail等線程不安全行為。同時結(jié)合源碼從數(shù)據(jù)結(jié)構(gòu),尋址方式,同步方式,計算size等角度分析了JDK 1.7和JDK 1.8中ConcurrentHashMap的實現(xiàn)原理。
Kafka設(shè)計解析(六)- Kafka高性能架構(gòu)之道
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
12758
|
字數(shù)
7,086
本文從宏觀架構(gòu)層面和微觀實現(xiàn)層面分析了Kafka如何實現(xiàn)高性能。包含Kafka如何利用Partition實現(xiàn)并行處理和提供水平擴展能力,如何通過ISR實現(xiàn)可用性和數(shù)據(jù)一致性的動態(tài)平衡,如何使用NIO和Linux的sendfile實現(xiàn)零拷貝以及如何通過順序讀寫和數(shù)據(jù)壓縮實現(xiàn)磁盤的高效利用。
機器學(xué)習(xí)(二) 如何做到Kaggle排名前2%
發(fā)表于
|
更新于
|
分類于
machine learning
,
機器學(xué)習(xí)
,
AI
|
評論次數(shù)
0
|
閱讀次數(shù)
5756
|
字數(shù)
11,631
本文詳述了如何通過數(shù)據(jù)預(yù)覽,探索式數(shù)據(jù)分析,缺失數(shù)據(jù)填補,刪除關(guān)聯(lián)特征以及派生新特征等方法,在Kaggle的Titanic幸存預(yù)測這一分類問題競賽中獲得前2%排名的具體方法。
Spark性能優(yōu)化之道——解決Spark數(shù)據(jù)傾斜(Data Skew)的N種姿勢
發(fā)表于
|
更新于
|
分類于
Spark
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
7364
|
字數(shù)
12,339
本文結(jié)合實例詳細闡明了Spark數(shù)據(jù)傾斜的幾種場景以及對應(yīng)的解決方案,包括避免數(shù)據(jù)源傾斜,調(diào)整并行度,使用自定義Partitioner,使用Map側(cè)Join代替Reduce側(cè)Join,給傾斜Key加上隨機前綴等。
Java進階(五)Java I/O模型從BIO到NIO和Reactor模式
本文介紹了Java中的四種I/O模型,同步阻塞,同步非阻塞,多路復(fù)用,異步阻塞。同時將NIO和BIO進行了對比,并詳細分析了基于NIO的Reactor模式,包括經(jīng)典單線程模型以及多線程模式和多Reactor模式。
UML(一) 類圖詳解
在UML 2.*的13種圖形中,類圖是使用頻率最高的UML圖之一,它表示了類與類之間的關(guān)系,幫助開發(fā)人員理解系統(tǒng)。它是系統(tǒng)分析和設(shè)計階段的重要產(chǎn)物,也是系統(tǒng)編碼和測試的重要模型依據(jù)。本文詳細介紹了類間的依賴關(guān)系,關(guān)聯(lián)關(guān)系(聚合、組合等),實現(xiàn)關(guān)系以及繼承關(guān)系的UML表示形式及其在代碼中的實現(xiàn)方式。
分布式事務(wù)(一)兩階段提交及JTA
分布式事務(wù)與本地事務(wù)一樣,包含原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。兩階段提交是保證分布式事務(wù)中原子性的重要方法。本文重點介紹了兩階段提交的原理,PostgreSQL中兩階段提交接口,以及Java中兩階段提交接口規(guī)范JTA的使用方式。
Java進階(四)線程間通信剖析
本文將介紹常用的線程間通信工具CountDownLatch、CyclicBarrier和Phaser的用法,并結(jié)合實例介紹它們各自的適用場景及相同點和不同點。
Java進階(三)多線程開發(fā)關(guān)鍵技術(shù)
本文將介紹Java多線程開發(fā)必不可少的鎖和同步機制,同時介紹sleep和wait等常用的暫停線程執(zhí)行的方法,并詳述synchronized的幾種使用方式,以及Java中的重入鎖(ReentrantLock)和讀寫鎖(ReadWriteLock),之后結(jié)合實例分析了重入鎖條件變量(Condition)的使用技巧,最后介紹了信號量(Semaphore)的適用場景和使用技巧。
Java進階(二)當(dāng)我們說線程安全時,到底在說什么
提到線程安全,可能大家的第一反應(yīng)是要確保接口對共享變量的操作要具體原子性。實際上,在多線程編程中我們需要同時關(guān)注可見性、順序性和原子性問題。本篇文章將從這三個問題出發(fā),結(jié)合實例詳解volatile如何保證可見性及一定程序上保證順序性,同時例講synchronized如何同時保證可見性和原子性,最后對比volatile和synchronized的適用場景。
SQL優(yōu)化(六) MVCC PostgreSQL實現(xiàn)事務(wù)和多版本并發(fā)控制的精華
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
2908
|
字數(shù)
5,249
數(shù)據(jù)庫事務(wù)隔離性可通過鎖機制或者MVCC實現(xiàn),PostgreSQL默認使用MVCC。本文結(jié)合實例介紹了PostgreSQL的MVCC實現(xiàn)機制,并介紹了PostgreSQL如何通過MVCC保證事務(wù)的原子性和隔離性,最后介紹了PostgreSQL如何通過VACUUM機制克服MVCC帶來的副作用。
Java設(shè)計模式(十三) 別人再問你設(shè)計模式,叫他看這篇文章
本文講解了設(shè)計模式與OOP的三大特性及OOP七項原則間的關(guān)系,并講解了使用設(shè)計模式的好處及為何需要使用設(shè)計模式。最后通過問答形式講解了設(shè)計模式相關(guān)的常見問題
Java設(shè)計模式(十二) 策略模式
本文結(jié)合實例詳述了策略模式的實現(xiàn)方式,并介紹了如何結(jié)合簡單工廠模式及Annotation優(yōu)化策略模式。最后分析了策略模式的優(yōu)缺點及已(未)遵循的OOP原則
Java設(shè)計模式(十一) 享元模式
本文介紹了享元模式的適用場景,并結(jié)合實例詳述了享元模式的實現(xiàn)方式。最后分析了享元模式的優(yōu)缺點及已(未)遵循的OOP原則
Java設(shè)計模式(十) 你真的用對單例模式了嗎?
本文介紹了為何需要單例模式,單例模式的設(shè)計要點,餓漢和懶漢的區(qū)別,并通過實例介紹了實現(xiàn)單例模式的八種實現(xiàn)方式及其優(yōu)缺點。
Java設(shè)計模式(九) 橋接模式
當(dāng)一種事物可在多種維度變化(如兩個維度,每個維度三種可能)時,如果為每一種可能創(chuàng)建一個子類,則每增加一個維度上的可能需要增加多個類,這會造成類爆炸(3*3=9)。若使用橋接模式,使用類聚合,而非繼承,將可緩解類爆炸,并增強可擴展性。
Java設(shè)計模式(八) 適配器模式
適配器模式可將一個類的接口轉(zhuǎn)換成調(diào)用方希望的另一個接口。這種需求往往發(fā)生在后期維護階段,因此有觀點認為適配器模式只是前期系統(tǒng)接口設(shè)計缺乏的一種彌補。從實際工程來看,并不完全這樣,有時不同產(chǎn)商的功能類似但接口很難完全一樣,而為了系統(tǒng)使用方式的一致性,也會用到適配器模式。
Java設(shè)計模式(七) Spring AOP JDK動態(tài)代理 vs. Cglib
Spring的AOP有JDK動態(tài)代理和cglib兩種實現(xiàn)方式。JDK動態(tài)代理要求被代理對象實現(xiàn)接口;cglib通過動態(tài)繼承實現(xiàn),因此不能代理被final修飾的類;JDK動態(tài)代理生成代理對象速度比cglib快;cglib生成的代理對象比JDK動態(tài)代理生成的代理對象執(zhí)行效率高。
Java設(shè)計模式(六) 代理模式 vs. 裝飾模式
代理模式與裝飾模式在代碼組織結(jié)構(gòu)上非常相近,以至于很多讀者很難區(qū)分它們。本文將結(jié)合實例對比代理模式和裝飾模式的適用場景,實現(xiàn)方式。
Java設(shè)計模式(五) 組合模式
本文介紹了組合模式的概念,UML類圖,優(yōu)缺點,實例講解以及組合模式(未)遵循的OOP原則。
Java設(shè)計模式(四) 觀察者模式
本文介紹了觀察者模式的概念,UML類圖,優(yōu)缺點,實例分析以及觀察者模式(未)遵循的OOP原則。
Java設(shè)計模式(三) 抽象工廠模式
本文介紹了抽象工廠模式的概念,UML類圖,優(yōu)缺點,實現(xiàn)方式以及(未)遵循的OOP原則。同時結(jié)合J2EE中常用的DAO實例詳解了抽象工廠模式的實現(xiàn)。
Java設(shè)計模式(二) 工廠方法模式
本文介紹了工廠方法模式的概念,優(yōu)缺點,實現(xiàn)方式,UML類圖,并介紹了工廠方法(未)遵循的OOP原則
SQL優(yōu)化(五) PostgreSQL (遞歸)CTE 通用表表達式
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
2517
|
字數(shù)
5,639
本文結(jié)合實例介紹了CTE(Common Table Expressions,通用表達式)的用法,優(yōu)缺點,并詳細闡述了遞歸CTE的執(zhí)行步驟及使用方法。同時給出了使用WITH RECURSIVE計算圖的最短路徑方案。
Java設(shè)計模式(一) 簡單工廠模式不簡單
本文介紹了簡單工廠模式的概念,優(yōu)缺點,實現(xiàn)方式,以及結(jié)合Annotation和反射的改良方案。同時介紹了簡單工廠模式(未)遵循的OOP原則。最后給出了簡單工廠模式在JDBC中的應(yīng)用
Java進階(一)Annotation(注解)
本文介紹了Java Annotation的概念及Java提供的四種Meta Annotation的功能,并結(jié)合實例詳解了自定義Annotation的方法和注意事項
Kafka設(shè)計解析(五)- Kafka性能測試方法及Benchmark報告
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
21158
|
字數(shù)
3,476
本文詳細闡述了Kafka的性能測試方法,并全面展示了Kafka各組件的性能測試報告。
SQL優(yōu)化(四) PostgreSQL存儲過程
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
6545
|
字數(shù)
8,883
本文介紹了存儲過程的概念,優(yōu)勢,并結(jié)合實例講解了存儲過程在PostgreSQL中的實現(xiàn),注意事項
SQL優(yōu)化(三) PostgreSQL Table Partitioning
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
4485
|
字數(shù)
9,383
本文介紹了數(shù)據(jù)庫分區(qū)表的使用場景,優(yōu)勢,原理,及在PostgreSQL中的實現(xiàn)和注意事項。
Kafka設(shè)計解析(四)- Kafka Consumer設(shè)計解析
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
24364
|
字數(shù)
5,903
本文主要介紹了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer實現(xiàn)的語義,以及適用場景。以及未來版本中對High Level Consumer的重新設(shè)計--使用Consumer Coordinator解決Split Brain和Herd等問題。
Kafka設(shè)計解析(三)- Kafka High Availability (下)
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
21943
|
字數(shù)
6,835
本文在上篇文章 基礎(chǔ)上,更加深入講解了Kafka的HA機制,主要闡述了HA相關(guān)各種場景,如Broker failover,Controller failover,Topic創(chuàng)建/刪除,Broker啟動,F(xiàn)ollower從Leader fetch數(shù)據(jù)等詳細處理過程。同時介紹了Kafka提供的與Replication相關(guān)的工具,如重新分配Partition等。
Kafka設(shè)計解析(二)- Kafka High Availability (上)
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
28295
|
字數(shù)
7,505
Kafka從0.8版本開始提供High Availability機制,從而提高了系統(tǒng)可用性及數(shù)據(jù)持久性。本文從Data Replication和Leader Election兩方面介紹了Kafka的HA機制。
機器學(xué)習(xí)(一) 從一個R語言案例學(xué)線性回歸
發(fā)表于
|
更新于
|
分類于
machine learning
,
機器學(xué)習(xí)
,
AI
|
評論次數(shù)
0
|
閱讀次數(shù)
5650
|
字數(shù)
3,435
本文簡要介紹了線性回歸的原理,適用場景,并結(jié)合實例講解如何使用R語言解決線性回歸問題
SQL優(yōu)化(二) 快速計算Distinct Count
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
7240
|
字數(shù)
3,885
本文介紹了distinct count的SQL優(yōu)化方法,以及常用的高效近似算法及其在PostgreSQL上的實現(xiàn)。
Kafka設(shè)計解析(一)- Kafka背景及架構(gòu)介紹
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
52294
|
字數(shù)
7,364
本文介紹了Kafka的創(chuàng)建背景,設(shè)計目標(biāo),使用消息系統(tǒng)的優(yōu)勢以及目前流行的消息系統(tǒng)對比。并介紹了Kafka的架構(gòu),Producer消息路由,Consumer Group以及由其實現(xiàn)的不同消息分發(fā)方式,Topic & Partition,最后介紹了Kafka Consumer為何使用pull模式以及Kafka提供的三種delivery guarantee。
SQL優(yōu)化(一) Merge Join vs. Hash Join vs. Nested Loop
發(fā)表于
|
更新于
|
分類于
PostgreSQL
,
Database
,
SQL優(yōu)化
,
SQL
|
評論次數(shù)
0
|
閱讀次數(shù)
10796
|
字數(shù)
3,351
本文介紹了Merge Join,Hash Join,Nested Loop這三種數(shù)據(jù)庫Join方式的工作原理,并通過實驗進一步說明了其適用范圍。
Java高性能異步處理框架-Disruptor
#Disruptor簡介
window.disqusProxy={
shortname: 'jasongj',
username: 'jasongj',
server: 'comments.jasongj.c
...
Kafka深度解析
發(fā)表于
|
更新于
|
分類于
Kafka
,
big data
,
大數(shù)據(jù)
,
分布式
|
評論次數(shù)
0
|
閱讀次數(shù)
88172
|
字數(shù)
17,487
介紹Kafka背景,使用消息系統(tǒng)的優(yōu)勢,常用消息系統(tǒng)對比,Kafka架構(gòu)介紹,Kafka實現(xiàn)語義分析,Replication及Leader Election機制剖析,Consumer Group Rebalance實現(xiàn)原理介紹,以及Benchmark測試。
|
|