原创 RocketMQ的commitlog索引文件indexfile生成規則

Indexfile的文件存儲結構 Index File Struct   Indexfile的邏輯關係 一個文件大小約400M   Table 1 Index File關係圖   使用messagekey查詢 IndexFile:消息

原创 winSocket第一步WSAStartup

寫了很多socket了,很少關注socket的第一步 #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <ws2tcpip.

原创 RocketMQ框架要點

環境安裝 RMQ核心概念 命名服務進程 RMQ的indexfile存儲機制 MQ消息存儲機制 順序消息 消息可靠性 心跳維護機制 客戶端如何查找、維護topic對應的路由信息的 事務消息 定時消息 消息重試 流量控制 死信隊列 批量發送機

原创 謂詞 (Predicate)

  函數對象(FunctionObject)對於一個實參,返回一個可轉換爲 bool 的值而不改動實參       https://blog.csdn.net/caroline_wendy/article/details/15378055

原创 面試C++基礎知識

編譯 源文件從文本到可執行文件過程 源文件,從文本到可執行文件一般需要四個過程: 預處理階段:對源代碼文件中文件包含關係(頭文件)、預編譯語句(宏定義)進行分析和替換,生成預編譯文件。 編譯階段:將經過預處理後的預編譯文件轉換成特定彙編代

原创 排序算法-快速排序

源代碼git地址 算法原理: 軸點的概念:任意序列S[lo,hi],對應的有序向量爲[lo,hi]。若把S分爲前後兩個子序列,S[lo,mid)/S[mid,hi)。如果mid爲軸點,那麼則滿足: S[mid]=[mid] 前後子序列的成

原创 排序算法-歸併排序

源代碼git地址 算法原理: 建立在歸併操作上的一種有效的排序算法,該算法是採用分治法的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱爲二路歸併。

原创 排序算法-選擇排序

源代碼git地址 算法原理: 始終將兩個序列分爲兩個部分:待排序前綴,有序後綴,且前綴不大於後綴。反覆迭代,取出未排序數據中最大值,放入到有序序列最小的位置(最前端)。 不變形:任意時刻,前綴區間s[0,r]總小於等於後綴s(r,n),後

原创 排序算法-插入排序

源代碼git地址 算法原理: 始終將兩個序列分爲兩個部分:有序前綴,待排序區間。反覆迭代,取出未排序數據首元素,在已排序序列中從後向前掃描,找到相應位置並插入。 不變形:任意時刻,對於當前元素e=s[r],前綴區間s(0,r)總有序。 適

原创 二進制展開位中1的個數

題目描述: 對於任意非負整數,求二進制展開位中的1的個數   算法分析:     算法實現: #include <iostream> using namespace std; int countOnes(unsigned int n

原创 rand()

rand C 僞隨機數生成 定義於頭文件 <stdlib.h> int rand(); 返回 ​0​ 與 RAND_MAX 間的隨機整數值(包含 0 與 RAND_MAX )。 srand() 播種 rand() 所用的僞隨機數生成器。

原创 RocketMQ的MesssageId的生成

public static String createMessageId(final ByteBuffer input, final ByteBuffer addr, final long offset) { inpu

原创 CreateIoCompletionPort

創建輸入/輸出(I / O)完成端口並將其與指定的文件句柄相關聯,或創建尚未與文件句柄相關聯的I / O完成端口,從而允許以後進行關聯。 將打開的文件句柄的實例與I / O完成端口相關聯,可使進程接收有關該文件句柄的異步I / O操作完成

原创 C語言直接調用未聲明的函數

問題描述: C語言直接調用未聲明的函數的坑,跟之前的一篇直接malloc返回值的錯誤有點像。 現象下面的函數調用,返回值的指針訪問不了: main.c TestMalloc * test = FuncTest(); printf("

原创 RocketMQ在win安裝調試

1、下載環境 http://rocketmq.apache.org/dowloading/releases/ 下載一個二進制一個源代碼   2、設置環境變量 ROCKETMQ_HOME=解壓後的文件目錄 例如 D:\rocketmq-a