原创 Java線程池原理和使用總結

Java線程池原理和使用總結爲什麼需要線程池實現一個簡單的線程池線程池實現原理線程池的使用常用實現類線程池種類合理的配置線程池 爲什麼需要線程池 降低資源消耗。通過重複利用已創建的線程降低線程創建和銷燬造成的消耗; 提升響應速度

原创 MySQL實現有記錄就忽略,沒記錄就插入以及有記錄就更新,沒記錄就插入

前提 MySQL版本 5.5.45,使用的引擎InnoDB. 準備數據表 現在我有張user表,看下錶結構: 主鍵是id,name是普通索引,mobile是唯一索引,其他是普通字段。 insert ignore 可以實現有記錄就

原创 鎖、事務的隔離級別、事務的併發問題——寫好“增刪改查”必須知道的MySQL InnoDB相關知識

鎖、事務的隔離級別、事務的併發問題——寫好“增刪改查”必須知道的MySQL InnoDB相關知識MySQL InnoDB鎖的類型共享鎖(SLock)排他鎖(XLock)鎖的範圍鎖行鎖表讀的類型一致性非鎖定讀(快照讀)一致性鎖定讀(

原创 Java多線程基礎知識總結

Java多線程基礎知識總結線程的狀態新建就緒運行死亡阻塞創建線程的方式線程安全問題線程同步synchronized關鍵字Lock接口和ReadWriteLock接口死鎖控制線程開啓:start休眠:sleep讓步:yield等待某

原创 自定義一個SpringBoot Starter項目

前言 我們在用SpringBoot的時候,只需要依賴一個starter項目,無需配置,就能使用這個starter項目的Bean。使用過早期Spring的人都知道,我們要想使用一個Spring bean,必須在xml配置文件裏定義這

原创 單機版Apache Druid配置Ingestion Task數量,即middle manager的slots(插槽)數量

Apache Druid這個分析型數據庫用起來真香,就是對機器配置要求挺高的。我用的是micro-quickstart版本,默認是兩個插槽,我在測試的過程中配置了五個從Kafka攝取數據的任務,結果只有兩個任務在運行,另外三個被掛

原创 Flink Task重啓之後重複消費Kafka消息問題解決

我的項目是從Kafka消費消息,計算之後發送到elasticsearch存儲。 現象:每次重啓Flink Task,都會往elasticsearch發送已經計算過的數據。比如本來elasticsearch有3條記錄,在不往Kafk

原创 Flink不觸發窗口計算又不報錯的問題定位

剛接觸Flink不久,照着之前的一個老項目重構。好不容易寫完代碼並解決完各種報錯,結果發現即使不報錯也無法運出自己想要的效果。調試發現能正常消費到Kafka的消息,但是卻無法觸發窗口計算。在網上翻到一篇博客問題定位:Flink水位

原创 在SpringBoot 2.x中使用RabbitMQ的死信隊列和延遲隊列功能

在SpringBoot 2.x中使用RabbitMQ的死信隊列和延遲隊列功能前言延遲隊列的基本原理配置測試 前言 如果你還不知道什麼是死信隊列、什麼是延遲隊列、死信隊列和延遲隊列有什麼關係,請參考我的這篇文章:RabbitMQ學習

原创 Java中的Lock和ReadWriteLock原理淺析

Java中的Lock和ReadWriteLock原理淺析前言鎖的可重入性Lock接口ReadWriteLock接口思路以及簡單實現讀/寫鎖的重入讀鎖重入寫鎖重入 前言 Java除了提供synchronized關鍵字來實現線程同步,

原创 在SpringBoot中使用RabbitMQ客戶端詳解

在SpringBoot中使用RabbitMQ客戶端詳解前言添加依賴編寫配置編寫生產者編寫消費者編寫測試類 前言 該示例使用的SpringBoot版本是2.2.2 添加依賴 引入amqp的依賴就行,AMQP即Advanced Mes

原创 Redis事務以及Java demo

Redis事務以及Java demo概述錯誤處理語法錯誤運行錯誤WATCH命令介紹應用場景Redis事務的Java demo(使用RedisTemplate)參考資料 概述 Redis中的事務是一組命令的集合。一個事務中的命令要麼

原创 Kafka學習筆記之入門篇

Kafka學習筆記之入門篇消息消息批次消息格式主題(Topic)分區生產者概覽發送消息方式消費者消費者和消費者羣組分區再均衡訂閱主題消息輪詢提交和偏移量自動提交手動提交同步提交異步提交同步和異步組合提交提交特定的偏移量Broker

原创 RabbitMQ學習筆記之進階篇

RabbitMQ學習筆記之進階篇消息何去何從mandatory參數immediate參數備份交換器過期時間(TTL,Time To Live)死信隊列延遲隊列RPC實現持久化生產者確認事務機制發送方確認機制消費端要點介紹消息分發消

原创 常用設計模式之單例模式,以及單例模式的線程安全問題

常用設計模式之單例模式,以及單例模式的線程安全問題介紹餓漢式懶漢式 介紹 有時候允許自由創建某個類的對象沒有意義,還可能會造成系統性能下降。如果讓一個類只能創建一個實例,這種設計模式被稱爲單例設計模式。其基本思路就是:定義一個靜態