原创 MQ監聽器下多線程安全問題

背景 今天在寫MQ隊列監聽器隊列的時候,突然有一個疑問,局部變量會不會受到多線程的影響,所以爲此做了一個實驗。 實驗 我在監聽器中定義了兩個變量,一個是類變量,一個是局部變量。然後設置監聽器的併發線程爲2個、一次抓取線程的消息個數爲10個

原创 對象內存計算神器

今天給大家介紹一個對象內存計算神奇。jvm內存溢出的時候,我們可以通過很多方法查看原因,很多時候也需要查看具體是哪一個大對象導致內存溢出。 這裏要介紹的是lucene提供的專門用於計算堆內存佔用大小的工具類:RamUsageEstimat

原创 ArrayList之removeAll底層原理實現詳解

今天給大家介紹下ArrayList之removeAll的用法,並深入講解一下它的底層實現原理。 大家先看如下所示代碼: CollectionTest collectionTest =new CollectionTest(

原创 SpringBoot中Mybatis時區問題

最近遇到一個巨坑的bug,mybatis打印出來sql日誌顯示數據入庫成功,但是數據庫查詢卻怎麼也查詢不到數據,debug日誌打了一堆,硬是沒發現任何問題。 問題背景 這邊先給大家介紹一下bug背景,有一個訂單服務需要實時獲取第三方接口訂

原创 高併發下Mysql主從延遲處理方案

產生原因 一般做數據庫讀寫分離的時候,都是由於數據庫扛不住用戶的大量請求,導致數據庫出現瓶頸,爲了增大數據庫的吞吐量而做的。那麼當一個請求往主庫裏面寫的時候,同時會同步一份數據寫到從庫中。如果此時從庫處於非常繁忙的狀態,就會出現主庫的數

原创 RabbitMQ日常爬坑分享

現在好多項目都需要進行微服務化,所以就需要將傳統的ssm項目轉化爲springboot項目,今天就給大家分享一下:我在RabbitMQ改造時,遇到的坑。 坑一:消息隊列無法創建坑: 代碼裏面明明寫了MQ隊列如果不存在,就會新建一個消息隊列

原创 記一次服務cpu爆高異常

這幾天進行架構整改,將業務服務話,然後單獨部署,但是有一臺服務的運行時,cpu特別高,基本都是90%以上,導致服務的消費能力特別差。這種級別bug,簡直是一種噩夢,但還是必須得解決。 發現問題: 1.服務部署到linux之後,通過top

原创 Spring @Lookup實現單例bean依賴注入原型bean

作者:simoscode 地址:https://www.jianshu.com/p/5254e1947d77 大多數場景,在Spring容器的大多數bean都是單例的.當一個單例bean A依賴另一個單例bean B,直接在A中定義一個

原创 白話解析Java中HashMap底層實現原理

作者:ZoroRen https://www.cnblogs.com/yuanblog/p/4441017.html 一、Java中的hashCode和equals 1、關於hashCode hashCode的存在主要是用於查找的快捷性

原创 mysql由於臨時表導致IO過高的性能優化過程分享

線上mysql數據庫爆出一個慢查詢,DBA觀察發現,查詢時服務器IO飆升,IO佔用率達到100%, 執行時間長達7s左右。 SQL語句如下: SELECT DISTINCT g.*, cp.name AS cp_name, c.name

原创 記一次RabbitMQ連接阻塞,全部隊列不消費異常

前幾天博主遇到一個很狗屎的bug,RabbitMQ本來運行的好好突然所有的消息隊列都不消費了,看了一下 Connections連接,發現全部都發生阻塞了,導致線上的隊列堆積如山,情況萬分危急。 推測一:生產者和消費者問題 剛開始推測是不

原创 Tomcat8類加載機制

在瞭解類加載機制時,發現網上大部分文章還停留在tomcat6,甚至tomcat5。 Tomcat8 和 Tomcat6比較大的區別是 : Tomcat8可以通過配置 <Loader delegate="true"/>不打破雙親委託 類的

原创 java中如何實現"回調函數"

最近工作需要研究了一會別人寫的庫,其中充滿着各種"回調函數",因此把自己理解給記錄下來,存檔。 首先我們來看看回調函數 這個概念的具體由來,百度百科的示義如下: 回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作爲參數

原创 經典項目應用場景分享-下

上一章中講到項目開發中實際應用場景,我們應該如何進行設計,今天接着上一章的內容,我們繼續來講敘。 想學習分佈式、微服務、JVM、多線程、架構、java、python的童鞋,千萬不要掃碼,否則後果自負~ 場景應用 1.商品規格設計問題 業

原创 經典項目應用場景分享

項目實際開發過程中,往往有很多場景需要設計實現。而且如果設計不得當,後期會出現很多問題,甚至有可能會導致項目延期或者失敗。今天給大家介紹我們項目的幾個應用場景,當然不一定是最完美的方案,童鞋們一定要根據實際情況酌情處理。 想學習分佈式、微