原创 elasticsearch之簡單使用

elasticsearch之簡單使用 一、elasticsearch基本概念 在Elasticsearch中存儲數據的行爲就叫做索引(indexing),不過在索引之前,我們需要明確數據應該存儲在哪裏。 在Elasticsearch中,文

原创 spring之一 bean初始化

spring之一 bean初始化 spring bean生命週期 Bean容器找到配置文件中Spring Bean的定義。Bean容器利用Java Reflection API創建一個Bean的實例。如果涉及到一些屬性值 利用set方法

原创 elasticsearch安裝

Elasticsearch安裝 一、安裝環境 阿里雲,使用lsb_release -a查看linux信息   二、安裝過程   從es官網選擇你需要的es版本,地址爲https://www.elastic.co/downloads/pas

原创 Tcp協議之三次握手四次揮手學習一

一、分層 網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議族,比如TCP/IP,是一組不同層次上的多個協議的組合。 TCP/IP通常被認爲是一個四層協議系統, 如圖所示: TCP/IP協議族的四個層次 每一層分不同

原创 RabbitMQ之四 Routinig

在上篇文章Publish/Subscribe中我們構建了一個簡單的日誌系統,可以將日誌消息廣播給多個消費者。 這這篇文章中我們需要添加一個功能,使得日誌消費者可以訂閱日誌的部分消息,比如我們需要將error的日誌消息記錄到日誌文件中,同時

原创 RabbitMQ之三 Publish/Subscribe

在上篇文章Work Quene中我們創建了一個Work Queue,在Work Queue中的每個task會準確的分發給worker,這邊文章中,我們需要將一個消息分發給多個consumers,這個模式稱爲發佈訂閱 "publish/su

原创 java nio解決半包 粘包問題

java nio解決半包 粘包問題 NIO socket是非阻塞的通訊模式,與IO阻塞式的通訊不同點在於NIO的數據要通過channel放到一個緩存池ByteBuffer中,然後再從這個緩存池中讀出數據,由於服務端緩存池大小限制以及網速不

原创 RabbitMQ 之一"Hello World"

一、RabbitMQ介紹 RabbitMQ是一個消息中介,它接收消息並轉發,可以想象RabbitMQ爲一個郵箱/信箱,當你將你需要寄出去的信件放進郵箱,可以確定的是郵差最終會將信件交付給信件的接收者,以此類推,RabbitMQ就是一個郵箱

原创 JAVA NIO Buffer的學習

JAVA NIO Buffer的學習 定義:緩衝區的工作與通道緊密聯繫。通道是I/O傳輸發生時通過的入口,而緩衝區是這些數據傳輸的來源或目標。簡單來說buffer就是一塊存儲區域,其內部的存儲是通過基本類型的數組來實現的。 下圖是Buf

原创 RabbitMQ 之五 Topics

在上篇文章Routing中,我們改進了日誌系統,使用類型爲direct的exchange,使得可以有選擇性的接收日誌。而不是fanout那樣只是簡單的廣播信息。 雖然使用了direct的exchange來改進我們的日誌系統,但是還是有侷限

原创 字節 字符與編碼

字符、字節與編碼 “字符與編碼”是一個被經常討論的話題。即使這樣,時常出現的亂碼仍然困擾着大家。雖然我們有很多的辦法可以用來消除亂碼,但我們並不一定理解這些辦法的內在原理。而有的亂碼產生的原因,實際上由於底層代碼本身有問題所導致的。因此

原创 將JDK安裝版改成非安裝版

將JDK安裝版改成非安裝版 一:需求:一臺電腦上有時候需要多個不同版本的jdk,而安裝版只能安裝一個,這時候就需要免安裝版本的jdk,使用時直接切換就可以了,但是jdk官網只提供windows的exe版本,不提供zip的版本。 二、解決辦