原创 synchronized/volatile/ReentrantLock/ThreadLocal介紹

1、首先先看兩篇文章瞭解一下,篇一,篇二 AQS核心思想 2、synchronized介紹 synchronized能保證原子性,有序性,可見性。 synchronized加鎖原理:使用synchronized之後,當執行同步代碼塊前首先

原创 JVM優化工具及jvm參數配置

1、堆設置 -Xms:堆內存的最小值 -Xmx:堆內存的最大值 -Xmn:堆內存中新生代的初始化大小 -XX:newSize:表示堆內存中新生代初始化的最小值,應該小於-Xms的值; -XX:MaxnewSize:表示堆內存中新生代初

原创 springcloud網關源碼分析及總結

一:網關路由配置方式分爲兩種:靜態路由配置、動態路由配置 靜態:路由信息可以從配置文件、數據庫DB、redis等其他地方獲取,這種方式沒有使用eureka的註冊發現,熔斷等功能,如需要則可以自己實現 動態:路由配置信息從Eureka中通過

原创 rocketmq如何保證消息可靠性

1、可以從三個方面來分析rocket的消息可靠性 2、Producer端消息丟失 首先消息分爲普通消息(同步,異步,單向發送),定時延時消息,順序消息(不能保證全局有序,只能保證同一個quen中有序),事物消息 producer端防止消息

原创 Eureka的多級緩存機制

1、多級緩存流程圖參考 2、

原创 使用Redis Key失效事件實現定時任務

1、業務場景 在開發中我們可能會遇到下面這樣的場景,比如: 當一個用戶下單之後後一段時間不支付訂單會自動關閉,但每個訂單的創建時間又不一樣怎麼保證30分鐘不支付就取消訂單呢? 當用戶的優惠券或者積分等等快要過期的時候需要提前一天或者幾個小

原创 springboot2.0.5+jpa多數據源配置and註解形式多數據源切換

1.首先配置數據源連接總裝類DataSourcesConfig package com.cpic.dataSources; import org.springframework.beans.factory.annotation.Qua

原创 springboot項目遠程debugger調試模式

springboot項目設置遠程調試模式,並配合idea遠程調試使用 第一步:在遠程服務器上啓動springboot項目的jar包時設置成可以遠程調試的參數命令 java -jar -Xdebug -Xrunjdwp:tran

原创 JVM性能分析&故障排查

1、Jps查看進程 首先查看jps都用哪些命令,使用jps -help幫助查看命令,這樣就不用死記硬背了,如下所示: 首先用jps命令查看正在運行中的進程的pid等。 jps -l    輸出主類的全名,如果進程執行的是 Jar 包,

原创 HashMap插入數據原理分析

在JDK1.7中,HASHMAP是由數組+鏈表實現的,原理圖如下: HashMap map = new HashMap(); // 僞初始化 map.put("鍵","值"); // 真初始化 1、HashMap初始化操作 HashM

原创 jvm性能優化到底在優化什麼?

1、jvm中的stop the world 我們要知道jvm中的stop the world是指什麼?我們都知道當程序運行的時候,創建的對象等數據是放在jvm堆內存上的 當堆內存滿了之後,jvm是會進行垃圾回收的,就是當jvm進行垃圾回收

原创 windows安裝Mongodb服務

1、MongoDB 下載 MongoDB 提供了可用於 32 位和 64 位系統的預編譯二進制包,你可以從MongoDB官網下載安裝,MongoDB 預編譯二進制包下載地址:https://www.mongodb.com/download

原创 JConsole連接遠程服務器方法

jconsole遠程連接,必須配置JMX連接參數 1、linux 啓動項目時,添加參數 java -Djava.rmi.server.hostname=10.160.13.111 #遠程服務器ip,即本機ip,可以不需要 -Dcom

原创 核心線程數的設置

1、不同種類的線程池都適用什麼場景呢? 2、選擇的關鍵點是:1 儘量減少線程切換和管理的開支,2最大化利用cpu 3、高併發,耗時短 這種場景適合線程儘量少,因爲如果線程太多,任務執行時間段很快就執行完了,有可能出現線程切換和管理多耗費的

原创 mysql查詢以及日誌總結

1、mysql基本架構以及查詢流程 MySQL拿到一個查詢請求後,會先到查詢緩存看看,之前是不是執行過這條語句。 只要是你之前執行過的語句,都會在內存裏面用key-value形式存儲着。查詢的時候就會拿着語句先去緩存中查詢,如果能夠命