原创 SpringBoot限制接口訪問頻率 - 這些錯誤千萬不能犯

最近在基於SpringBoot做一個面向普通用戶的系統,爲了保證系統的穩定性,防止被惡意攻擊,我想控制用戶訪問每個接口的頻率。爲了實現這個功能,可以設計一個annotation,然後藉助AOP在調用方法之前檢查當前ip的訪問頻率,如果超過

原创 一文徹底搞懂ZAB算法,看這篇就夠了!!!

最近需要設計一個分佈式系統,需要一箇中間件來存儲共享的信息,來保證多個系統之間的數據一致性,調研了兩個主流框架Zookeeper和ETCD,發現都能滿足我們的系統需求。其中ETCD是K8s中採用的分佈式存儲,而其底層採用了RAFT算法來保

原创 如何成爲一名優秀的工程師?頂級程序員的5點建議

一位工程師,如何才能稱得上優秀?除了寫得一手好 Code,什麼樣的工作態度和方法纔是一個優秀工程師的必備?今天給大家分享百度前COO、計算機科學博士及優秀的管理者陸奇,他提到的這5點要求,相信對每個工程師都適用。 1. 永遠相信技術 首先要

原创 一文徹底搞懂Raft算法,看這篇就夠了!!!

最近需要設計一個分佈式系統,需要一箇中間件來存儲共享的信息,來保證多個系統之間的數據一致性,調研了兩個主流框架Zookeeper和ETCD,發現都能滿足我們的系統需求。其中ETCD是K8s中採用的分佈式存儲,而其底層採用了RAFT算法來保

原创 給計算機專業學生的十大建議

經常有人問起計算機專業怎麼學習,根據多年的實踐經驗,總結出這十條,歡迎大家收藏學習。 1. 注重計算機基礎的學習 俗話說“勿在浮沙築高臺”,計算機基礎是你作爲一個科班生與非科班生的主要差別,也是一個計算機專業的核心競爭力,這玩意就像一

原创 如何設計一個微博系統?- 4招教你搞定系統設計

經常在面試的時候,會被問到系統設計類的題目,比如如何設計微信朋友圈、如何設計12306系統、如何設計一個搶票系統等等。如果是沒有準備過,一般都會不知所措,難以找到切入點。今天這裏碼老思會介紹一個解決系統設計類問題的通用框架,無論什麼問題

原创 帶你深入Java Log框架,徹底搞懂Log4J、Log4J2、LogBack,SLF4J

最近系統被掃出來還在使用老舊的log4j,需要升級到最新的log4j。但是在升級的發現,Java相關的日誌處理庫有log4j, log4j2,slf4j和logback,初一看確實有點頭大,那麼區別是啥呢?之前也大概知道一些,查找了大量

原创 二叉樹、B樹、B*樹、AVL樹... 這麼多樹你真的搞清楚了嗎?

經常在面試或者平時工作中,我們都會聽到類似的樹,類似於二叉樹、B樹、B*樹、AVL樹等等,很多情況下可能對他們都是隻有一知半解。今天我總結了所有常見的樹的原理,深入淺出的分析了其中的優缺點和注意事項,你一定得收藏起來好好研究。 1 基

原创 Spark系列 - (6) Spark 內存管理

6. Spark內存管理 在執行Spark的應用程序時,Spark集羣會啓動Driver和Executor兩種JVM線程,前者爲主控進程,負責創建Spark上下文,提交Spark作業(Job),並將作業轉化爲計算任務(Task),在各個Ex

原创 Spark系列 - (5) Spark Shuffle

目前已經更新完《Java併發編程》,《JVM性能優化》,《Spring核心知識》《Docker教程》和《Spark基礎知識》,都是多年面試總結。歡迎關注【後端精進之路】,輕鬆閱讀全部文章。 Java併發編程: Java併發編程系列-(1

原创 算法基礎之8大排序算法最優解-必讀

算法是面試考察的重點,基礎算法更是基礎,只有打好了基礎纔可能在此之上深入學習。這裏總結了最常見的排序算法,每個都進行了詳細分析,大家可以好好研究吸收。 1.排序 算法的穩定性:通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和

原创 吐血整理!2萬字Java基礎面試題(帶答案)請收好!

熬夜整理了這麼多年來的Java基礎面試題,歡迎學習收藏,手機上可以點擊這裏,效果更佳https://mp.weixin.qq.com/s/ncbEQqQdJo0UaogQSgA0bQ 1.1 Hashmap 與 concurrentHa

原创 這6種性能優化,讓你的程序飛起來!

軟件設計開發某種意義上是"取"與"舍"的藝術。關於性能方面,就像建築設計成抗震9度需要額外的成本一樣,高性能軟件系統也意味着更高的實現成本,有時候與其他質量屬性甚至會衝突,比如安全性、可擴展性、可觀測性等等。大部分時候我們需要的是:在業

原创 @Transactional千萬不要這樣用!!踩坑了你都可能發現不了!!!

前陣子接手了一段同事之前的代碼,裏面用到了@Transactional註解,瞭解Spring的小夥伴肯定知道,@Transactional是Spring提供的一種控制事務管理的快捷手段。但是我這段程序在運行的時候,經常出現莫名其妙的問題,

原创 Spark系列 - (4) Spark任務調度

目前已經更新完《Java併發編程》,《Spring核心知識》《Docker教程》和《JVM性能優化》,都是多年面試總結。歡迎關注【後端精進之路】,輕鬆閱讀全部文章。 Java併發編程: Java併發編程系列-(1) 併發編程基礎 Java