原创 實戰+ActiveMQ整合實現消息隊列(生產者+消費者)

一、ActiveMQ1.1  ActiveMQActiveMQ是Apache所提供的一個開源的消息系統,完全採用Java來實現,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服務)規範。J

原创 如何設計一個全局異常處理器?

01 前言最近稍微閒了一點於是把這個半年都沒更新的開源項目cicada重新撿了起來。這項目是幹啥的?先來看看官方介紹吧(其實就我自己寫的)cicada: 基於 Netty4 實現的快速、輕量級 WEB 框架;沒有過多的依賴,核心 jar 包

原创 35 個 Java 代碼性能優化歸納,不看可惜!

編輯文章一、前言二、代碼優化的目標(1)減小代碼的體積(2)提高代碼運行的效率三、代碼優化細節1、儘量指定類、方法的final修飾符帶有final修飾符的類是不可派生的。在Java核心API中,有許多應用final的例子,例如java.la

原创 Spring Boot 打包成的可執行 jar ,爲什麼不能被其他項目依賴?

編輯文章前兩天有小夥伴問到這樣一個問題:“小哥哥,爲什麼我的 Spring Boot 項目打包成的 jar ,被其他項目依賴之後,總是報找不到類的錯誤?”大夥有這樣的疑問,就是因爲還沒搞清楚可執行 jar 和普通 jar 到底有什麼區別?今

原创 你確定你會寫 Dockerfile?

本文使用一個基於 Maven 的 Java 項目作爲示例,然後不斷改進 Dockerfile 的寫法,直到最後寫出一個最優雅的 Dockerfile。中間的所有步驟都是爲了說明某一方面的最佳實踐。一、減少構建時間一個開發週期包括構建 Doc

原创 抓狂的Java併發:強大的AQS!

一、AQS簡介 AQS是隊列同步器AbstractQueuedSynchronizer的簡稱,是用來構建鎖和其他隊列同步組件(ReentrantLock、CountDownLatch、Semaphore等)的基礎框架。它使用一個volati

原创 Spring Boot瞭解多少?給你一份核心知識清單!

編輯文章在過去兩三年的Spring生態圈,最讓人興奮的莫過於Spring Boot框架。那Spring Boot有何魔法?自動配置、起步依賴、Actuator、命令行界面(CLI) 是Spring Boot最重要的4大核心特性,其中CLI是

原创 優化代碼中大量的if/else,你有什麼方案?

一個快速迭代的項目,時間久了之後,代碼中可能會充斥着大量的if/else,嵌套6、7層,一個函數幾百行,簡!直!看!死!人!其實這種還算好的,更嚴重的嵌套我也見過,接手到這種項目的人,內心應該是絕望的。出現這種情況的原因很多,比如 設計不夠

原创 高併發和海量數據下的 9 個 Redis 經典案例剖析!

01 業務背景這次分享主要是圍繞 Redis,分享在平時的日常業務開發中遇到的 9 個經典案例,希望通過此次分享可以幫助大家更好的將 Redis 的高級特性應用到日常的業務開發中來。 首先介紹一下業務背景:總用戶量大概是 5億左右,月活 5

原创 聊到JVM,面試官99%會問你如何判斷一個對象的生死狀態?

判斷對象的生死狀態的算法主要有1、引用計數器算法;2、可達性分析算法。一、引用計數器算法引用計算器判斷對象是否存活的算法是這樣的:給每一個對象設置一個引用計數器,每當有一個地方引用這個對象的時候,計數器就加1,與之相反,每當引用失效的時候就

原创 一篇文章帶你深入解析Redis主從複製機制!

我們瞭解Redis有兩種不同的持久化方式,Redis服務器通過持久化,把Redis內存中持久化到硬盤當中,當Redis宕機時,我們重啓Redis服務器時,可以由RDB文件或AOF文件恢復內存中的數據。不過持久化後的數據仍然只在一臺機器上,因

原创 What?一個 Dubbo 服務啓動要兩個小時?

一、前言前幾天在測試環境碰到一個非常奇怪的與 dubbo 相關的問題,事後我在網上搜索了一圈並沒有發現類似的帖子或文章,於是便有了這篇。希望對還未碰到或正在碰到的朋友有所幫助。二、現象現象是這樣的,有一天測試在測試環境重新部署一個 dubb

原创 高併發核心技術—— 冪等性 與 分佈式鎖!!!

一、高併發核心技術之 - 冪等性1.  什麼是冪等性冪等性就是指:一個冪等操作任其執行多次所產生的影響均與一次執行的影響相同。 用數學的概念表達是這樣的: f(f(x)) = f(x). 就像 nx1 = n 一樣, x1 就是一個冪等操作

原创 Redlock:Redis分佈式鎖最牛逼的實現

一、普通實現說道Redis分佈式鎖大部分人都會想到:setnx+lua,或者知道set key value px milliseconds nx。後一種方式的核心實現命令如下:- 獲取鎖(unique_value可以是UUID等)SET r

原创 高併發之限流,到底限的什麼鬼?

你可能知道高併發系統需要限流這個東西,但具體是限制的什麼,該如何去做,還是臨摹兩可。我們接下來系統性的給他歸個小類,希望對你有所幫助。google guava中提供了一個限流實現: RateLimiter,這個類設計的非常精巧,可以適用於我