原创 2018 年度覆盤

前言 看着今年的進度表已經所剩無幾,是時候來複盤一把了。 從 16 年初寫博客開始到現在我覺得寫年終總結的習慣不錯,畢竟每次看着去年的 flag 又可以複製粘貼了。 今年我會從工作、技術、身體等方面回顧,這幾塊也是今年變化最大的幾個點。

原创 一次生產 CPU 100% 排查優化實踐

前言 到了年底果然都不太平,最近又收到了運維報警:表示有些服務器負載非常高,讓我們定位問題。 還真是想什麼來什麼,前些天還故意把某些服務器的負載提高(沒錯,老闆讓我寫個 BUG!),不過還好是不同的環境互相沒有影響。 定位問題 拿到問題後

原创 沒錯,老闆讓我寫個 BUG!

前言 標題沒有看錯,真的是讓我寫個 bug! 剛接到這個需求時我內心沒有絲毫波瀾,甚至還有點激動。這可是我特長啊;終於可以光明正大的寫 bug 了🙄。 先來看看具體是要幹啥吧,其實主要就是要讓一些負載很低的服務器額外消耗一些內存、CPU

原创 如何成爲一位「不那麼差」的程序員 頂 原

前言 已經記不清有多少讀者問過: 博主,你是怎麼學習的?像我這樣的情況有啥好的建議嘛? 也不知道啥時候我居然成人生導師了。當然我不排斥這些問題,和大家交流都是學習的過程。 因此也許諾會準備一篇關於學習方面的文章;所以本文其實準備了很久

原创 設計一個百萬級的消息推送系統 頂 原 薦

前言 首先遲到的祝大家中秋快樂。 最近一週多沒有更新了。其實我一直想憋一個大招,分享一些大家感興趣的乾貨。 鑑於最近我個人的工作內容,於是利用這三天小長假憋了一個出來(其實是玩了兩天)。 先簡單說下本次的主題,由於我最近做的是物聯網相關

原创 一次 HashSet 所引起的併發問題 原 薦

背景 上午剛到公司,準備開始一天的摸魚之旅時突然收到了一封監控中心的郵件。 心中暗道不好,因爲監控系統從來不會告訴我應用完美無 bug,其實系統挺猥瑣。 打開郵件一看,果然告知我有一個應用的線程池隊列達到閾值觸發了報警。 由於這個應用出問

原创 SSM(十一) 基於dubbo的分佈式架構 頂 原 薦

前言 現在越來越多的互聯網公司還是將自己公司的項目進行服務化,這確實是今後項目開發的一個趨勢,就這個點再憑藉之前的SSM項目來讓第一次接觸的同學能快速上手。 淺談分佈式架構 分佈式架構單看這個名字給人的感覺就是高逼格,但其實從歷史的角度來

原创 秒殺架構實踐 頂 原 薦

前言 之前在 Java-Interview 中提到過秒殺架構的設計,這次基於其中的理論簡單實現了一下。 本次採用循序漸進的方式逐步提高性能達到併發秒殺的效果,文章較長請準備好瓜子板凳(liushuizhang😂)。 本文所有涉及的代碼

原创 不改一行代碼定位線上性能問題 原

背景 最近時運不佳,幾乎天天被線上問題騷擾。前幾天剛解決了一個 HashSet 的併發問題,週六又來了一個性能問題。 大致的現象是: 我們提供出去的一個 OpenAPI 反應時快時慢,快的時候幾十毫秒,慢的時候幾秒鐘才響應。 嘗試解決

原创 HashMap? ConcurrentHashMap? 相信看完這篇沒人能難住你! 頂 原 薦

前言 Map 這樣的 Key Value 在軟件開發中是非常經典的結構,常用於在內存中存放數據。 本篇主要想討論 ConcurrentHashMap 這樣一個併發容器,在正式開始之前我覺得有必要談談 HashMap,沒有它就不會有後面的

原创 一份針對於新手的多線程實踐--進階篇 原

前言 在上文《一份針對於新手的多線程實踐》留下了一個問題: 這只是多線程其中的一個用法,相信看到這裏的朋友應該多它的理解更進一步了。 再給大家留個閱後練習,場景也是類似的: 在 Redis 或者其他存儲介質中存放有上千萬的手機號碼數據

原创 分享一些 Kafka 消費數據的小經驗 原 薦

前言 之前寫過一篇《從源碼分析如何優雅的使用 Kafka 生產者》 ,有生產者自然也就有消費者。 建議對 Kakfa 還比較陌生的朋友可以先看看。 就我的使用經驗來說,大部分情況都是處於數據下游的消費者角色。也用 Kafka 消費過日

原创 利用責任鏈模式設計一個攔截器 原

前言 近期在做 Cicada 的攔截器功能,正好用到了責任鏈模式。 這個設計模式在日常使用中頻率還是挺高的,藉此機會來分析分析。 責任鏈模式 先來看看什麼是責任鏈模式。 引用一段維基百科對其的解釋: 責任鏈模式在面向對象程式設計裏是一種

原创 設計一個可拔插的 IOC 容器 原 薦

前言 磨了許久,藉助最近的一次通宵上線 cicada 終於更新了 v2.0.0 版本。 之所以大的版本號變爲 2,確實是向下不兼容了;主要表現爲: 修復了幾個反饋的 bug。 靈活的路由方式。 可拔插的 IOC 容器選擇。 其中重點是

原创 基於 Redis 的分佈式鎖 頂 原 薦

前言 分佈式鎖在分佈式應用中應用廣泛,想要搞懂一個新事物首先得了解它的由來,這樣才能更加的理解甚至可以舉一反三。 首先談到分佈式鎖自然也就聯想到分佈式應用。 在我們將應用拆分爲分佈式應用之前的單機系統中,對一些併發場景讀取公共資源時如扣庫