IO 一直是軟件開發(fā)中的核心部分之一,伴隨著海量數(shù)據(jù)增長(zhǎng)和分布式系統(tǒng)的發(fā)展,IO擴(kuò)展能力愈發(fā)重要。 Java IO 方式有很多種,基于不同的IO抽象模型和交互方式,可以簡(jiǎn)單區(qū)...
在分布式開發(fā)中,唯一主鍵的設(shè)計(jì)非常重要,我們今天來看看分布式ID的常用設(shè)計(jì) 首先我們先明確一下分布式ID的定義1.全局唯一,不是單點(diǎn)系統(tǒng)的唯一,而是分布式系統(tǒng)的唯一2.有序性...
在日常開發(fā)中,尤其是業(yè)務(wù)開發(fā),少不了利用java對(duì)數(shù)據(jù)庫進(jìn)行基本的增刪改查等數(shù)據(jù)操作,這也是java工程師必備技能之一,不僅僅需要對(duì)java語言框架的理解,更需要對(duì)數(shù)據(jù)庫自身...
今天,是我跑步3周年紀(jì)念日。 2016年3月14日,我用某跑步軟件正式開始記錄跑步數(shù)據(jù),到今天正好3年。(其實(shí),在此之前,我還用另一個(gè)軟件跑過一段時(shí)間,跑量50+KM,不過可...
今天加班導(dǎo)致沒有時(shí)間更新簡(jiǎn)書,一會(huì)過了是十一點(diǎn)我再更新吧,現(xiàn)在在路上呢,馬上到家1326946很不是日更,所以想先寫100字,一會(huì)我再把這篇湊數(shù)的文章更新下1,望大家諒解1手...
今天不分享技術(shù)文章了,想寫點(diǎn)這些年的一些 思考 我14年參加工作,想想已經(jīng)做程序員已經(jīng)5年之久了,這五年說長(zhǎng)不長(zhǎng),說短也不短,做了五年的應(yīng)用類開發(fā),主要做java后端,這些年...
Java動(dòng)態(tài)代理對(duì)象,今天和大家分享一下動(dòng)態(tài)代理的一種實(shí)現(xiàn)方案,使用JDK原生方案。 什么是動(dòng)態(tài)代理 我們比較熟悉數(shù)據(jù)庫連接池,在對(duì)數(shù)據(jù)庫進(jìn)行操作是,我們首先獲取數(shù)據(jù)庫對(duì)象,...
在大數(shù)據(jù)高并發(fā)場(chǎng)景下,單個(gè) Redis 實(shí)例往往會(huì)顯得捉襟見肘。首先體現(xiàn)在內(nèi)存上,單個(gè) Redis 的內(nèi)存不宜過大,內(nèi)存太大會(huì)導(dǎo)致 rdb 文件過大,進(jìn)一步導(dǎo)致主從同步時(shí)全量...
目前我們講的 Redis 還只是主從方案,最終一致性。讀者們可思考過,如果主節(jié)點(diǎn)凌晨 3 點(diǎn)突發(fā)宕機(jī)怎么辦?就坐等運(yùn)維從床上爬起來,然后手工進(jìn)行從主切換,再通知所有的程序把地...
在平時(shí)線上 Redis 維護(hù)工作中,有時(shí)候需要從 Redis 實(shí)例成千上萬的 key 中找出特定前綴的 key 列表來手動(dòng)處理數(shù)據(jù),可能是修改它的值,也可能是刪除 key。這...
Redis在3.2版本增加了GEO模板,意味著通過redis可以做附近的人,附近的門店,附近的商場(chǎng)這樣的功能。 用數(shù)據(jù)庫來算附近的人 地圖元素的位置數(shù)據(jù)使用二維的經(jīng)緯度表示,...
漏斗限流是最常用的限流方法之一,顧名思義,這個(gè)算法的靈感源于漏斗(funnel)的結(jié)構(gòu)。 漏斗的容量是有限的,如果將漏嘴堵住,然后一直往里面灌水,它就會(huì)變滿,直至再也裝不進(jìn)去...
限流在分布式系統(tǒng)中是一個(gè)經(jīng)常被提到的話題,如果當(dāng)前系統(tǒng)的能力,不足以承受那么大的訪問量的時(shí)候,那么我們就要阻止外來請(qǐng)求對(duì)系統(tǒng)繼續(xù)施壓 實(shí)現(xiàn)簡(jiǎn)單限流 首先我們來看一個(gè)常見的簡(jiǎn)單...
拿今日頭條來說,它會(huì)不停的給我們推薦新的新聞,每次推薦都要去重,過濾掉我們之前看過的內(nèi)容,今日頭條如何做到去重呢,我們上面的HyperLogLog雖然能去重,但是沒有辦法確認(rèn)...
老規(guī)矩還是先假設(shè)一個(gè)場(chǎng)景:比如京東的商品詳情頁,如果需要你來統(tǒng)計(jì)每天的UV數(shù)據(jù),你會(huì)如何實(shí)現(xiàn)? 如果是PV就好辦了,直接給每個(gè)網(wǎng)頁增加一個(gè)計(jì)時(shí)器,每個(gè)網(wǎng)頁增加一個(gè)日期,這樣一...
假設(shè)一個(gè)應(yīng)用場(chǎng)景:我們需要記錄用戶一年的簽到記錄,簽到了是1,沒簽是0,記錄365天,當(dāng)用戶上億后,存儲(chǔ)空間是驚人的。為了解決這個(gè)問題,redis提供了位圖的數(shù)據(jù)結(jié)構(gòu)。這樣每...
我們習(xí)慣于用rabbitmq和kafka作為消息中間件,來給應(yīng)用之間增加異步的能力。但是使用過的同學(xué)都知道,使用專業(yè)的消息中間件使用起來非常復(fù)雜,我們實(shí)現(xiàn)一個(gè)簡(jiǎn)單的功能都需要...