原创 RocketMq源碼解讀(四)消息發送

前兩章內容中,介紹了Producer的啓動過程,然後是如何創建topic,本章內容將主要集中在如何發送消息到broker   一、消息的投遞 消息的投遞分爲普通消息的投遞和事務消息的投遞 public class DefaultMQP

原创 Java IO多路複用機制詳解

1、在Java中,常見的IO模型有4種, 同步阻塞IO(Blocking IO) 同步非阻塞IO(Non-blocking IO):默認創建的socket都是阻塞的,非阻塞IO要求socket被設置爲NONBLOCK。注意這裏所說的NIO

原创 springboot 啓動流程(一) 藉助外部容器啓動

對springboot項目,可以通過兩種方式啓動服務,一是利用內嵌的Tomcat作爲web容器啓動,兩一種方式是藉助外部容器啓動。本章先介紹通過外部容器啓動的源碼流程。 一、springboot 藉助外部容器 @EnableSwagge

原创 springboot 啓動流程(三) run入口

1、入口run方法 public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new C

原创 Netty學習(三)

本章主要介紹Netty中的組件channel 一、channel概念 io.netty.channel.Channel時Netty對網絡的抽象,它組合了一組功能,包括不限於網絡的讀、寫、客戶端發起連接,主動關閉連接,關閉鏈路,獲取通信雙方

原创 Redis事務原理

本章主要Redis的事務相關特性 一、與Redis事務相關的基本概念 MULTI:用於標記事務的開始,其後執行的命令都將被存入命令隊列,直到執行EXEC時,這些命令纔會被原子執行。 EXEC: 執行事務,內部包裝執行了WATCH命令,只有

原创 Netty 學習(一)

一、什麼是Netty Netty是一個NIO服務框架,簡化了網咯應用框架的開發難度。Netty是一個事件驅動模型,(將很多階段抽象成一個個的事件,讓後將事件映射到多個回調方法上)。主要的特點有(https://netty.io/index

原创 給定一個最多包含40億個隨機排列的32位整數的順序文件,找出一個不在文件中的32位整數

本題是編程珠璣上的一道算法題,下面先介紹思想,然後做算法實現。 int 類型的32位整數,存在的數字個數有2的32次冪,大於40億,越有43億多。因爲這些整數從0x0000 0000 到0xffff ffff,均勻分佈,所以如果全部包括2

原创 打印字符的所有排列組合

給定一個字符串,輸出字符串中字符的所有排列組合 public static void permutation(char[] str, int i) { if (i >= str.length)

原创 RocketMq源碼解讀(五)MQPushConsumer啓動流程

本章主要從consumer的啓動流程介紹,詳解其源碼和流程。 啓動泳道圖:

原创 Netty學習(五)

Netty的零拷貝體現在三個方面: 1. Netty的接收和發送ByteBuffer採用DIRECT BUFFERS,使用堆外直接內存進行Socket讀寫,不需要進行字節緩衝區的二次拷貝。如果使用傳統的堆內存(HEAP BUFFERS)進

原创 RocketMq源碼解讀(四)事務消息發送

上一章內容,介紹了RocketMQ的普通消息發送,本章內容主要介紹發送事務消息。   一、事務消息的發送實例 public class TransactionProducerTest { public static void m

原创 JAVA中的迭代器iterator

一、迭代器Iterator 1、迭代器模式 主要是提供一種方法對一個容器對象中的各個元素進行訪問,而又不暴露該對象容器的內部細節。 2、JAVA迭代器的由來 在Java集合框架的集合類中,容器有很多種,比如ArrayList,Linked

原创 java 中的fail-fast和fail-safe機制

一、fail-fast 快速失敗機制           在用迭代器遍歷一個集合對象時,如果遍歷過程中對集合對象的內容進行了修改(增加、刪除、修改),則會拋出Concurrent Modification Exception。      

原创 字典樹

一、字典樹 Trie樹,即字典樹,又稱單詞查找樹或鍵樹,是一種哈希樹的變種。典型應用是用於統計和排序大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。它的優點是:最大限度地減少無謂的字符串比較,查詢效率比哈希表高。