大家都知道OAuth 2.0 有四種不同的grant type,分不同的業(yè)務(wù)場景來使用,我在前面的一篇文章也有粗略講過 微服務(wù)架構(gòu)學(xué)習(xí)筆記之一認(rèn)...
我們在搭建微服務(wù)的時(shí)候,常常需要考慮的一個(gè)問題是,微服務(wù)之間以及你的應(yīng)用和微服務(wù)之間是怎么信任對(duì)方的。 這個(gè)時(shí)候我們會(huì)談到兩個(gè)概念,認(rèn)證(aut...
Guava在很多項(xiàng)目都已經(jīng)使用過了,最近有點(diǎn)時(shí)間,于是重讀了下github上的user guidance,然后結(jié)合自己的使用經(jīng)驗(yàn)將常用的一些知識(shí)...
Java的內(nèi)存分布 在JVM中,內(nèi)存是按照分代進(jìn)行組織的。 其中,堆內(nèi)存分為年輕代和年老代,非堆內(nèi)存主要是Permanent區(qū)域,主要用于存儲(chǔ)一...
從上一篇文章中我們已經(jīng)知道了NameNode和Secondary NameNode的職責(zé),這篇文章我們主要講講我們怎么往DataNode上寫數(shù)據(jù)...
前言 最近剛接觸Hadoop, 一直沒有弄明白NameNode和Secondary NameNode的區(qū)別和關(guān)系。很多人都認(rèn)為,Secondar...
使用泛型的目的 當(dāng)我們第一次接觸泛型時(shí),第一個(gè)問題肯定會(huì)是,為什么要使用泛型?最直接的答案是為了避免轉(zhuǎn)型,使得編譯器能夠在編譯期就發(fā)現(xiàn)轉(zhuǎn)型錯(cuò)誤而...
在Java中,我們都知道關(guān)鍵字synchronized可以用于實(shí)現(xiàn)線程間的互斥,但我們卻常常忘記了它還有另外一個(gè)作用,那就是確保變量在內(nèi)存的可見...
前言 相比于前面三種垃圾收集算法,引用計(jì)數(shù)算法算是實(shí)現(xiàn)最簡單的了,它只需要一個(gè)簡單的遞歸即可實(shí)現(xiàn)。現(xiàn)代編程語言比如Lisp,Python,Rub...