原创 數據庫連接池性能比對(hikari druid c3p0 dbcp jdbc)

背景 對現有的數據庫連接池做調研對比,綜合性能,可靠性,穩定性,擴展性等因素選出推薦出最優的數據庫連接池 。      NOTE: 本文所有測試均是MySQL庫 測試結論    1:性能方面 hikariCP>druid>tomcat-j

原创 SpringBoot學習筆記四之【自動配置原理與舉例】

版本2.1.1 springboot只有一個application的啓動,我們就從這個啓動開始分析,首先我們跟進註解@SpringBootApplication如下: /** Class, interface (including an

原创 SpringBoot學習筆記三之【多Profile文件的Maven發佈使用】

在springboot工程中配置文件編寫的時候可以使用application-{profile}.properties/yml,默認使用application.properties/yml,例如: 每個環境配置如下: #applica

原创 SpringBoot學習筆記二之【yml配置舉例與語法介紹】

    Resource目錄結構說明: static:保存所有的靜態資源; js css images; templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面);可以

原创 SpringBoot學習筆記一之【Idea下創建springboot示例、啓動原理分析與兩種部署啓動方式】

1、使用背景 首先說下我們爲什麼使用springboot,原因有以下幾點 1、快速創建獨立運行的spring項目以及與主流框架繼承 2、使用嵌入式的Servlet容器,無需打成war包 3、starters自動依賴於版本控制 4、大量的自

原创 RocketMQ學習筆記四之【DefaultMQPullConsumer使用與流程簡單分析】

我們首先看下DefaultMQPullConsumer使用例子: package com.swk.springboot.rocketmq; import java.util.HashMap; import java.util.List

原创 RocketMQ學習筆記三之【DefaultMQPushConsumer流量控制】

上一節我們已經把DefaultMQPushConsumer的大體流程分析了一下,從這節開始我們分析一部分消息處理的細節問題。 繼續在DefaultMQPushConsumerImpl的pullMessage方法中有個ProcessQueu

原创 RocketMQ學習筆記二之【DefaultMQPushConsumer使用與流程原理分析】

版本:        <dependency>        <groupId>org.apache.rocketmq</groupId>        <artifactId>rocketmq-client</

原创 RocketMq學習筆記之一【常用操作命令與簡單配置】

【爲什麼使用RocketMq】 1、應用解耦 2、流量削峯 3、消息分發 4、保證最終一致性 5、方便動態擴容 【RocketMq的角色】 producer consumer Broker NameServer broker配置文件:

原创 多線程複習筆記之四【多線程中的異常】

在一個線程組中如果其中一個線程執行報錯並不影響其他線程的繼續執行,例如: package com.fyw.thread.lock.exception; public class MyThread extends Thread {

原创 多線程複習筆記之一【關鍵屬性與常用關鍵字概述】

1、併發和並行的區別? 併發可以發生在一個或多個CPU,同時處理多個任務,多個任務之間可以進行切換執行;並行只能發生在多核CPU,一覈對應一個任務同時運行 2、線程和進程之間的區別? a) 一個程序至少有一個進程,一個進程至少有個線程 b

原创 多線程複習筆記之三【多線程中的Lock使用】

Lock 1、getHoldCount() 查詢當前線程保持此鎖鎖定的個數,也就是調用lock方法的次數 2、int getQueueLength 返回正等待此鎖定的線程估計數,例如有5個線程,1個線程首先執行await,那麼調用getQ

原创 多線程複習筆記之二【線程間的通信】

Object.wait:釋放鎖,當時代碼不會往下繼續執行,需要等待notify通知,wait(1000)超過1秒自動喚醒 Object.notify:不釋放鎖,需要等到同步代碼塊執行完畢,如果沒有wait線程,notify命令將被忽略。

原创 多線程設計模式:Master-Worker模式

Master-Worker是常用的並行計算模式。它的核心思想是系統由兩類進程協作工作:Master進程和Worker進程。Master負責接收和分配任務,Worker負責處理子任務。當各個Worker子進程處理完成後,會將結果返回給Mas

原创 java定時器之Timer使用與原理分析

Timer和TimerTask Timer是jdk中提供的一個定時器工具,使用的時候會在主線程之外起一個單獨的線程執行指定的計劃任務,可以指定執行一次或者反覆執行多次。 TimerTask是一個實現了Runnable接口的抽象類,代表一個