原创 冒着被開除的風險也要給你們看的 Spring Cloud 入門總結

首先我給大家看一張圖,如果大家對這張圖有些地方不太理解的話,我希望你們看完我這篇文章會恍然大悟。 什麼是Spring cloud構建分佈式系統不需要複雜和容易出錯。Spring Cloud 爲最常見的分佈式系統模式提供了一種簡單且易於接受的

原创 實現分佈式服務註冊及簡易的 Netty 聊天 程序員的經歷

現在很多地方都會用到zookeeper, 用到它的地方就是爲了實現分佈式。用到的場景就是服務註冊,比如一個集羣服務器,需要知道哪些服務器在線,哪些服務器不在線。 ZK有一個功能,就是創建臨時節點,當機器啓動應用的時候就會連接到一個ZK節點,

原创 驚訝!線上四臺機器同一時間全部 OOM,到底發生了什麼?

案發現場 昨天晚上突然短信收到 APM (即 Application Performance Management 的簡稱),我們內部自己搭建了這樣一套系統來對應用的性能、可靠性進行線上的監控和預警的一種機制)大量告警 畫外音: 監控是一種

原创 一文講解高併發下的接口冪等性怎麼實現?

實際系統中有很多操作,是不管做多少次,都應該產生一樣的效果或返回一樣的結果。例如: 前端重複提交選中的數據,應該後臺只產生對應這個數據的一個反應結果。 我們發起一筆付款請求,應該只扣用戶賬戶一次錢,當遇到網絡重發或系統bug重發,也

原创 獨角獸螞蟻花唄5面:Spring+數據庫+緩存+紅黑樹+Docker+微服務等

螞蟻花唄一面(一個小時):JDK 中有哪幾個線程池?順帶把線程池講了個遍Java容器有哪些?哪些是同步容器,哪些是併發容器?ArrayList和LinkedList的插入和訪問的時間複雜度?java反射原理, 註解原理?JDK 中有哪幾個

原创 SpringBoot實戰電商項目mall出SpringCloud版本啦

去年12月的時候,mall項目正式發佈,作爲Github上面最火的SpringBoot實戰電商項目,累計獲得了25000+Star。今年還是12月,mall項目微服務版本mall-swarm正式發佈,項目介紹 mall-swarm是一套微服

原创 SpringBoot實戰電商項目mall出SpringCloud版本啦

去年12月的時候,mall項目正式發佈,作爲Github上面最火的SpringBoot實戰電商項目,累計獲得了25000+Star。今年還是12月,mall項目微服務版本mall-swarm正式發佈,項目介紹 mall-swarm是一套微服

原创 淺談集羣版Redis和Gossip協議

今天來看一下Redis-Cluster和其中的重要概念Gossip協議。 1.Redis Cluster的基本概念 集羣版的Redis聽起來很高大上,確實相比單實例一主一從或者一主多從模式來說複雜了許多,互聯網的架構總是隨着業務的發展不斷演

原创 原生線程池這麼強大,Tomcat 爲何還需擴展線程池?

前言 Tomcat/Jetty 是目前比較流行的 Web 容器,兩者接受請求之後都會轉交給線程池處理,這樣可以有效提高處理的能力與併發度。JDK 提高完整線程池實現,但是 Tomcat/Jetty 都沒有直接使用。Jetty 採用自研方案,

原创 HTTPS 原理分析——帶着疑問層層深入

HTTPS 隨着 HTTPS 建站的成本下降,現在大部分的網站都已經開始用上 HTTPS 協議。大家都知道 HTTPS 比 HTTP 安全,也聽說過與 HTTPS 協議相關的概念有 SSL 、非對稱加密、 CA證書等,但對於以下靈魂三拷問可

原创 大話設計,沒有模式—通用權限設計與實現

當代碼寫多了,總有些是經驗,但經驗是什麼呢?if…else用的次數比別人多?顯然不是。有些超棒的設計可以謂之經驗! 功能權限網絡上流行的經典的權限設計是【主體】- 【領域】 - 【權限】( who、what、how問題原型 ) 的設計思想,

原创 讀寫分離很難嗎?springboot結合aop簡單就實現了

前言 前幾天終於有時間研究下公司舊項目的代碼。在研究代碼的過程中,發現項目裏用到了Spring Aop來實現數據庫的讀寫分離,本着自己愛學習(我自己都不信...)的性格,決定寫個實例工程來實現spring aop讀寫分離的效果。 環境部署

原创 如何判斷一個元素是否存在於一個億級數據集中?

布隆過濾器的概念布隆過濾器(Bloom Filter)於 1970 年由布隆提出的,是專門 用於檢索一個元素是否存在於一個集合中的算法。 你可能會想,判斷一個元素是否在集合中,這不就是集合自帶的功能嗎? 元素數量少的時候的確沒問題,但如

原创 如何通過Nginx配置來優化你的網絡請求?

緩存可以減少冗餘的數據傳輸。節省了網絡帶寬,從而更快的加載頁面。緩存降低了服務器的要求,從而服務器更快的響應。那麼我們使用緩存,緩存的資源文件到什麼地方去了呢?首先來看下有哪幾種緩存類型呢? 1.memory cache: 它是將資源文件緩

原创 阿里系統研發部數據庫組教你一文搞懂 MySQL 單表查詢的底層實現

對於我們這些 MySQL的使用者來說,平時用的最多的就是查詢功能。DBA時不時丟過來一些慢查詢語句讓優化,如果連查詢是怎麼執行的都不清楚還優化個毛線,所以是時候掌握真正的技術了。 MySQL有一個稱爲 查詢優化器的模塊,一條查詢語句進行語法