叮當(dāng)快藥

一輪

  • 限流有哪幾種底層算法

常用4種限流算法介紹及比較
面試官:你知道的限流算法有哪些?

  • 計數(shù)器(固定窗口)算法
    每個時間周期只允許固定次數(shù)的請求以故,超出拒絕蜗细,容易產(chǎn)生的問題是臨界問題,
    比如3s內(nèi)允許的最大請求量為1000,那么會出現(xiàn)2個極端:
    極端情況1:
    ??第1s請流量為10,
    ??第2s請流量為10,
    ??第3s請流量突然激增到980.這意味著在這一刻,有大量的請求蜂擁而至,假設(shè)服務(wù)每秒能處理的上線為800/1s,但是此刻卻有超過這個量級的請求量,那么后果是不堪設(shè)想的.
    極端情況2:
    ??第1s請流量突然就達(dá)到990,
    ??留給后續(xù)第2s,3s的可請求數(shù)量就非常少了,可能會出現(xiàn)大量的拒絕請求

  • 滑動窗口算法
    滑動窗口算法是將時間周期分為N個小周期怒详,分別記錄每個小周期內(nèi)訪問次數(shù)炉媒,并且根據(jù)時間滑動刪除過期的小周期。
    滑動窗口的格子劃分的越多昆烁,那么滑動窗口的滾動就越平滑吊骤,限流的統(tǒng)計就會越精確。
    此算法可以很好的解決固定窗口算法的臨界問題静尼。

  • 漏桶算法
    漏桶算法是訪問請求到達(dá)時直接放入漏桶白粉,如當(dāng)前容量已達(dá)到上限(限流值),則進(jìn)行丟棄(觸發(fā)限流策略)鼠渺。漏桶以固定的速率進(jìn)行釋放訪問請求(即請求通過)鸭巴,直到漏桶為空。
    實現(xiàn):用隊列保存請求拦盹,用ScheduledThreadPoolExecutor(支持定時任務(wù)的線程池)來定時從隊列中取請求來執(zhí)行

  • 令牌桶算法
    令牌桶算法可以說是對漏桶算法的改進(jìn)奕扣。漏桶算法能限制請求的速率。而令牌桶算法在限制請求速率的同時還允許一定程度的突發(fā)調(diào)用
    算法過程:

    1. 一直放令牌掌敬,如果令牌桶達(dá)到上限則丟棄令牌惯豆,假設(shè)每秒放10個
    2. 可以應(yīng)對一定程度的流量激增,如此時令牌桶有100個令牌奔害,突然發(fā)生200次調(diào)用楷兽,則此時最開始的100次請求可以正常調(diào)用,后續(xù)的請求才會以10個/s的速率來調(diào)用

    實現(xiàn):用隊列保存令牌华临,用ScheduledThreadPoolExecutor來定時放令牌

拓展:Hystrix的原理和使用

  • Redis緩存的數(shù)據(jù)量大概有多少

  • Kafka使用過程中有沒有遇到什么問題

自動提交可以發(fā)生的問題
  • Kafka 輪詢刪除日志芯杀,對高性能的讀寫有影響嗎 零拷貝

  • Kafka 使用ZK 選舉,寫入主broker雅潭,副本怎樣同步揭厚,同步機(jī)制有哪些

    ZK在Kafka中的作用
    Zookeeper 在 Kafka 中的作用

    1. broker注冊
    2. topic注冊
    3. 生產(chǎn)者負(fù)載均衡
    4. 消費(fèi)者負(fù)載均衡
      5.消費(fèi)者注冊

ZK數(shù)據(jù)同步方式



在初始化階段,zk 的 learner會優(yōu)先初始化以全量同步方式來同步數(shù)據(jù)
learner先向leader注冊扶供,上報peerLastZxid

  • ZK 很多機(jī)器都往zk寫入數(shù)據(jù)的話 會有什么問題

  • NG 負(fù)載均衡的配置 NG會開發(fā)一些腳本嗎

  • CAP有了解嗎 ZK 是哪種

zk是CP系統(tǒng)
不能保證可用性 也就是在極端環(huán)境下筛圆,ZooKeeper可能會丟棄一些請求,消費(fèi)者程序需要重新請求才能獲得結(jié)果

  • ZK主從選舉保證的什么

zk初始化選舉和崩潰選舉

2
  • Java的多線程用過嗎

  • 定時的線程池椿浓,線程是一開始初始化好的太援,還是新來任務(wù)之后陸續(xù)初始化的闽晦?

  • 如果想new出現(xiàn)線程池之后直接初始化好所有的核心線程數(shù),怎么實現(xiàn)

  • 用過ThreadLocal 嗎 什么場景提岔?內(nèi)存泄漏的風(fēng)險

  • 強(qiáng)引用仙蛉,弱引用,虛引用

在Java中碱蒙,我們的垃圾回收機(jī)制回收垃圾的時候就會根據(jù)對象的引用荠瘪,判斷對象是否可以被垃圾回收,這里有兩種:

  1. 引用計數(shù)法:為每個對象添加一個引用計數(shù)器赛惩,每當(dāng)有一個引用指向它時哀墓,計數(shù)器就加一,當(dāng)引用失效時坊秸,計數(shù)器減一麸祷,當(dāng)計數(shù)器為0時,則認(rèn)為該對象可以被回收褒搔。
  2. 可達(dá)性分析算法(GC roots)從一個被稱為GC roots的對象開始往下搜索阶牍,如果一個對象到GC roots沒有任何引用鏈相連,則說明此對象不可用星瘾。

對象的引用被劃分為4種級別走孽,從而使程序能更加靈活地控制對象的生命周期。這4種級別由高到低依次為:強(qiáng)引用琳状、軟引用磕瓷、弱引用和虛引用。

  • k8s有了解嗎

二輪

  • sonar會開發(fā)規(guī)則嗎

  • 代碼掃描有什么收獲

  • 快排的思路 是穩(wěn)定的嗎念逞?

  • 堆排序

  • 鏈表怎么判斷有環(huán)

  • 二叉樹的鏡像

  • ThreadLocal的原理 key是什么

key是ThreadLocal類的實例對象困食,value為用戶的值

  • stream group是什么意思

  • 多線程中 join yeild

wait()方法的作用是將當(dāng)前運(yùn)行的線程掛起(即讓其進(jìn)入阻塞狀態(tài)),直到notify或notifyAll方法來喚醒線程.

有了對wait方法原理的理解翎承,notify方法和notifyAll方法就很容易理解了硕盹。既然wait方式是通過對象的monitor對象來實現(xiàn)的,所以只要在同一對象上去調(diào)用notify/notifyAll方法叨咖,就可以喚醒對應(yīng)對象monitor上等待的線程了瘩例。notify和notifyAll的區(qū)別在于前者只能喚醒monitor上的一個線程,對其他線程沒有影響甸各,而notifyAll則喚醒所有的線程

sleep方法的作用是讓當(dāng)前線程暫停指定的時間(毫秒)垛贤,sleep方法是最簡單的方法,在上述的例子中也用到過趣倾,比較容易理解聘惦。唯一需要注意的是其與wait方法的區(qū)別。最簡單的區(qū)別是誊酌,wait方法依賴于同步部凑,而sleep方法可以直接調(diào)用露乏。而更深層次的區(qū)別在于sleep方法只是暫時讓出CPU的執(zhí)行權(quán)碧浊,并不釋放鎖涂邀。而wait方法則需要釋放鎖。

yield方法的作用是暫停當(dāng)前線程箱锐,以便其他線程有機(jī)會執(zhí)行比勉,不過不能指定暫停的時間,并且也不能保證當(dāng)前線程馬上停止驹止。yield方法只是將Running狀態(tài)轉(zhuǎn)變?yōu)镽unnable狀態(tài)浩聋。

join方法的作用是父線程等待子線程執(zhí)行完成后再執(zhí)行,換句話說就是將異步執(zhí)行的線程合并為同步的線程臊恋。

  • volitile 內(nèi)存可見性的底層原理

  • Kafka看過源碼嗎衣洁?

三輪

  • 研發(fā)效能平臺為什么能提高效率?

  • kafka 為什么快

零拷貝技術(shù)抖仅,
兩種零拷貝方案 MMap sendfile
MMap三次拷貝 sendfile兩次拷貝坊夫,多出的一次是CPU拷貝 從內(nèi)核拷貝到用戶進(jìn)程
rocketMQ使用MMAP Kafka使用sendfile 所以rocketmq能達(dá)到十萬級別,kafka能達(dá)到百萬級別
但為什么rocketmq不適用sendfile 因為rocketmq可以處理消息的順序撤卢,消息的過濾
Kafka不能完成环凿,因為sendfile壓根就沒有到達(dá)數(shù)據(jù)應(yīng)用層,內(nèi)核中無法處理這些操作放吩。

  • 消息隊列怎么保證不丟消息

  • filebeat如果采集過智听,怎么再采集一次 配置在哪里

  • list里學(xué)生對象哥艇,根據(jù)學(xué)生年齡排序

  • HashMap與hashtable的區(qū)別

  • synchronize修飾一個方法门岔,這個方法如果是靜態(tài)的和非靜態(tài)的有什么區(qū)別

    使用synchronized修飾靜態(tài)方法和非靜態(tài)方法有什么區(qū)別
  • Java默認(rèn)有哪些線程池抡草,

  • spring中事務(wù)底層是怎樣實現(xiàn)的休里,

  • 如果讓你實現(xiàn)一個事務(wù)蜒秤,該怎么來做

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末槐瑞,一起剝皮案震驚了整個濱河市勿璃,隨后出現(xiàn)的幾起案子揭璃,更是在濱河造成了極大的恐慌集灌,老刑警劉巖悔雹,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異欣喧,居然都是意外死亡腌零,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門唆阿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來益涧,“玉大人,你說我怎么就攤上這事驯鳖∠醒” “怎么了久免?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扭弧。 經(jīng)常有香客問我阎姥,道長,這世上最難降的妖魔是什么鸽捻? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任呼巴,我火速辦了婚禮,結(jié)果婚禮上御蒲,老公的妹妹穿的比我還像新娘衣赶。我一直安慰自己,他們只是感情好厚满,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布府瞄。 她就那樣靜靜地躺著,像睡著了一般碘箍。 火紅的嫁衣襯著肌膚如雪遵馆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天敲街,我揣著相機(jī)與錄音团搞,去河邊找鬼。 笑死多艇,一個胖子當(dāng)著我的面吹牛逻恐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峻黍,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼复隆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姆涩?” 一聲冷哼從身側(cè)響起挽拂,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骨饿,沒想到半個月后亏栈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宏赘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年绒北,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片察署。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡闷游,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脐往,我是刑警寧澤休吠,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站业簿,受9級特大地震影響瘤礁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辖源,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一蔚携、第九天 我趴在偏房一處隱蔽的房頂上張望希太。 院中可真熱鬧克饶,春花似錦、人聲如沸誊辉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堕澄。三九已至邀跃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛙紫,已是汗流浹背拍屑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坑傅,地道東北人僵驰。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像唁毒,于是被迫代替她去往敵國和親蒜茴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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

  • sidebarDepth: 0 常見題 [[toc]] 基本題 java集合 1浆西、List,Set區(qū)別 List1...
    小陌上花開閱讀 512評論 0 2
  • 1粉私、hashcode相等兩個類一定相等嗎?equals呢?相反呢? 結(jié)論:equals 相等的 hashcode一...
    編程鴨閱讀 1,516評論 0 0
  • 1.java基礎(chǔ) 1.1 說一說java有哪些集合 答:分層次記憶:第一層:Collection;第二層:List...
    java_飛閱讀 2,427評論 5 40
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月近零,有人笑有人哭诺核,有人歡樂有人憂愁,有人驚喜有人失落久信,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,523評論 28 53
  • 信任包括信任自己和信任他人 很多時候窖杀,很多事情,失敗入篮、遺憾陈瘦、錯過,源于不自信,不信任他人 覺得自己做不成痊项,別人做不...
    吳氵晃閱讀 6,181評論 4 8