原创 JVM問題排查

我的虛擬機運行命令和參數 java -Xms256m -Xmx512m -verbose:gc -Xloggc:/usr/local/tomcat/apache-tomcat-9.0.27/logs/gc.log -XX:+He

原创 Mysql索引失效

避免索引失效的原則: 複合索引: 複合索引不要跨列使用,儘量不要無序使用;儘量使用全索引匹配 不要在索引上進行任何操作(計算,函數,類型轉換),否則索引失效 like儘量以“常量”開頭,不要以%開頭,否則索引失效 儘量不要使用

原创 mysql知識點整理

mysql數據庫邏輯分層結構: InnoDB: 事務優先(適合高併發操作,行鎖) MyISAM: 性能優先 (表鎖) 編寫過程: select distinct … from … join … on … where … g

原创 併發編程

什麼是上下文切換問題? 在單核心CPU架構中,對於多線程的運行是基於CPU時間片切換來實現的僞並行。由於時間片非常短導致用戶以爲是多個線程並行執行。而一次上下文切換,實際就是當前線程執行一個時間片之後切換到另外一個線程,並且保存當

原创 JVM垃圾收集器

先看兩個圖: Java垃圾收集器的類型: 垃圾收集器工作的區域: 常見垃圾回收器 不同的垃圾回收器,適用於不同的場景。常用的垃圾回收器: 串行(Serial)回收器是單線程的一個回收器,簡單、易實現、效率高。 並行(Pa

原创 使用idea根據數據庫表來生成對應的實體類

打開idea,找到database,選擇想要連接的數據庫類型 輸入數據庫連接信息,點擊test connection ,出現Successful, 然後點擊Apply, OK 3, idea右邊會出現數據庫的表, 4,

原创 spring cloud gateway之限流

Spring Cloud Gateway限流概述 在開發高併發系統時可以用三把利器來保護系統:緩存,降級和限流。 緩存:提升系統訪問速度和增大系統處理的容量,是提高併發流量的”銀彈“; 降級:當服務出現問題或者影響到核心流程時,

原创 SpringBoot之ApplicationRunner

我們在開發中可能會需要在容器啓動的時候執行一些內容。比如讀取配置文件,加載路由信息,數據庫連接之類的。SpringBoot給我們提供了兩個接口來幫助我們實現這種需求。這兩個接口分別爲CommandLineRunner和Applic

原创 RabbitMQ之交換器和隊列

    交換器和隊列是MQ中high-level層面的構建模塊,應用程序需確保在使用它們的時候就已經存在了,在使用之前需要先聲明它們。以下源碼是基於spring-amqp-1.7.7.RELEASE.jar的源碼分析 交換機源碼

原创 Spring Cloud之Eureka Server啓動流程分析

啓動流程分析圖如下: Eureka Server啓動類: /** 1. 啓動一個服務註冊中心,只需要一個註解@EnableEurekaServer */ @EnableEurekaServer @SpringBootAp

原创 @RequestBody請求使用postman調用

@RequestBody的傳參格式: @RequestMapping(value = "query.do", method = { RequestMethod.POST }) public JsonHeaderWrapper<O

原创 創建一個存儲過程

創建一個存儲器: //刪除已存在的 drop procedure if exists create_data; //分隔符 delimiter ;; create PROCEDURE create_data() BEGIN dec

原创 Mac IntellJ IDEA安裝路徑查找以及修改內存大小

Mac IntellJ IDEA安裝路徑查找 在應用程序裏面找到idea,然後右鍵點擊顯示包內容; 然後進入Contents/bin目錄下,打開idea.vmoptions文件 設置下面幾個參數: a:Xms102

原创 線程的基礎知識(五)之線程通信

傳統的線程通信 當線程在系統內運行時,線程的調度具有一定的透明性,程序通常無法準確控制線程的輪換執行,單Java也提供了一些機制來保證線程協調運行。爲了實現這一機制,可以藉助Object類提供的wait(),notify()和no

原创 線程的基礎知識

線程概述: 幾乎所有的操作系統都支持同時運行多個任務,一個任務通常就是一個程序;每個運行中的程序就是一個進程。當一個程序運行時,內部可能包含了多個順序執行流,每個順序執行流就是一個線程。也可以說每一個請求就是一個線程。 線程的創建