原创 《RabbitMQ 消息中間件》Rabbit集羣架構

前言 在現在微服務架構下,RabbitMQ也需要支持集羣,保證高可用。 集羣架構 1. 普通集羣模式 1.1 主節點的隊列,從節點是沒有的。但是從節點可以看到。 1.2 消費者可以監聽從節點,從節點會找主節點要消息。 1.3 Excahg

原创 《RabbitMQ 消息中間件》SpringBoot整合RabbitMQ

前言 RabbitMQ單獨使用的場景現在非常少,基本都是整合在Spring中,接下來我們就針對SpringBoot如何整合RabbitMQ進行說明 整合 1. 導入依賴包(Gradle) compile('org.springframew

原创 《RabbitMQ 消息中間件》RabbitMQ的應用場景

前言 RabbitMQ爲什麼會產生,能解決什麼問題呢? 應用場景 1. 異步處理 場景說明:用戶註冊後,需要發註冊郵件和註冊短信,傳統的做法有兩種 (1)串行方式:將註冊信息寫入數據庫後,發送註冊郵件,再發送註冊短信,以上三個任務全部完成後

原创 《RabbitMQ 消息中間件》RabbitMQ詳解

前言 安裝完RabbitMQ之後,我們就來了解一下RabbitMQ的管理命令。 詳情 第一條命令:幫助命令 rabbitmqctl help 第二條命令:插件管理 rabbitmq-plugins list 插件列表,enabl

原创 《Java基礎知識》Java 分割迭代器(Spliterator)

前言 研讀ArrayList源碼的時候,發現使用了(Spliterator)分割迭代器。就簡單的瞭解一下分割迭代器的使用方式。 原理 看一個分割迭代器的使用案例: public class SpliteratorTest { p

原创 《RabbitMQ 消息中間件》RabbitMQ安裝(Linux)

前言 在公司工作的過程中接觸了RabbitMQ,覺得RabbitMQ的功能很實用,就想着自己好好了解一下這個中間件。瞭解系統先從搭建開始。 搭建 前提:Linux: Centos 7  1. 依賴erlang安裝 執行命令: yum -y

原创 《Java基礎知識》Java Hash底層原理

前言 瞭解到JDK8對HashMap進行了優化,就一起了解一下JDK8的HashMap。 原理 1. 哈希表的原理 首先需要一張Hash表,Java通過數據實現:默認長度位16,並且。 第一步插入張三(哈希值11): 第二步插入李四(哈

原创 《Java數據結構》紅黑樹(RBTree)

前言 在學習JDK8的HashMap的時候遇到了紅黑樹,由於之前沒有遇到過紅黑樹,所以借這個機會好好了解一下紅黑樹。 原理 先看一下紅黑樹的定義: 1.每個結點或是紅的,或是黑的2.根節點是黑的3.每個葉結點是黑的4.如果一個結點是紅的,則

原创 《Java數據結構》Java 堆結構原理和實現

前言 學習Java阻塞隊列的時候,瞭解到了ConcurrentLinkedQueue隊列使用了堆結構,就整理一下堆結構的邏輯 原理 堆是一顆滿二叉樹(除了最後一層的節點可以不滿,其他層都必須是滿的),元素存儲在數組中,頭結點必定是最大或者最

原创 《Java基礎知識》Java LinkedList源碼分析

前言 在學習ArrayList的時候,不可避免的會和LinkedList做對比,所以我接下來學習一下LinkedList。 源碼分析 LinkedList的底層是雙向鏈表:https://www.cnblogs.com/jssj/p/116

原创 《Java數據結構》Java Queue隊列

前言 學習LinkedList的時候,遇到了隊列數據結構,就想着回顧一下隊列數據結構。 原理 Queue數據結構是一種線性的結構,先進先出的特性。下面看一下邏輯圖 隊列在我們寫代碼的過程比較常用,例如打印日誌,一個程序打印日誌是比較消耗資

原创 《Java基礎知識》Java transient關鍵字詳解

前言 在看ArrayList源碼的時候遇到了關鍵字“transient”,可憐的我居然沒有遇到過這個關鍵字,那沒有辦法只好去找資料瞭解一下它的功能。 功能說明 先看一個案例 public class User implements Ser

原创 《Java基礎知識》Java ArrayList源碼分析

前言 分析ArrayList 的源碼爲JDK8版本。 源碼分析 我們先看看一個案例: public class test2 { public static void main(String[] args) { i

原创 《Java基礎知識》Java 淺拷貝與深拷貝

前言 在學習ArrayList的時候,發現ArrayList繼承了Cloneable接口,於是就想着需要了解一下該接口是什麼作用。 淺拷貝 我們先寫一段代碼,來看看什麼是淺拷貝 public class DogSchool { p

原创 《MySQL數據庫》MySQL鎖分析

前言 作者在工作中遇到了往MySQL表中插入一條數據,結果插入不進去。並且同樣的操作在Oracle中卻可以插入,於是就專門研究了一下MySQL5.7鎖的邏輯。 鎖的介紹 介紹鎖之前需要先了解一下事務隔離級別:https://www.cnbl