原创 RabbitMQ的總結(一)

安裝RabbitMQ 這裏是基於docker安裝的,非常的方便,拉取RabbitMQ鏡像,運行即可 RabbitMQ自帶的管理頁面:http://119.25.162.48:15672/# 通過默認賬戶 guest/guest 登錄,如

原创 理解HTTP和HTTPS

原文鏈接:https://blog.csdn.net/iispring/article/details/51615631 HTTP http協議: 超文本傳輸協議(HTTP,HyperText

原创 理解OAuth 2.0

什麼是OAuth OAuth是一個關於授權(authorization)的開放網絡標準,允許用戶授權第三方移動應用訪問他們存儲在另外的服務提供者上的信息,而不需要將用戶名和密碼提供給第三方移動應用或分享他們數據的所有內容,在全世界得到廣泛

原创 總結

hashMap源碼解析 數據結構:數組+鏈表,即hashMap裏面是個數組,數組的每個元素都是一個單向鏈表 * 默認容量,必須是2的n次方 static final int DEFAULT_INITIAL_CAP

原创 數據庫緩存一致性的討論

引入 在項目中,我們通常會適應緩存這個技術來避免巨大的數據庫訪問壓力和提高獲取數據的效率問題,在使用緩存中我們通常的模式是,第一次查詢數據庫,然後把結果放入緩存中,下次的查詢會先訪問緩存,當緩存不存在的時候纔會訪問數據庫或者是其他的設置緩

原创 一致性哈希算法

我們在使用Redis的時候,爲了保證Redis的高可用,提高Redis的讀寫性能,最簡單的方式我們會做主從複製,組成Master-Master或者Master-Slave的形式,或者搭建Redis集羣,進行數據的讀寫分離,類似於數據庫的主

原创 深入理解JAVA中的SPI機制

什麼是SPI SPI全名爲Service Provider Interface是JDK內置的一種服務提供發現機制,是Java提供的一套用來被第三方實現或者擴展的API,它可以用來啓用框架擴展和替換組件。 JAVA SPI = 基於接口的編

原创 JAVA類加載器的理解

引入 一般情況下,我們平時寫的java類需要通過打包成.jar或者是.war的包,然後把打包好的jar包或者war包放到機器上部署,通過 java命令去運行一個jar包中的代碼,這其中包含一個重要的步驟,就是編譯,我們需要把寫好的.jav

原创 MySQL百萬級數據分頁查詢及優化

MYSQL分頁基礎語法 mysql使用查詢語句的時候,經常要返回前幾條或者中間某幾行數據,也就是我們說的分頁,語法如下: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET of

原创 Docker實踐指南(三)

容器配置 容器網絡 容器網絡實質上也是由 Docker 爲應用程序所創造的虛擬環境的一部分,它能讓應用從宿主機操作系統的網絡環境中獨立出來,形成容器自有的網絡設備、IP 協議棧、端口套接字、IP 路由表、防火牆等等與網絡相關的模塊。  

原创 Docker實踐指南(一)

淺談虛擬化和容器技術 虛擬機 虛擬機,通常來說就是通過一個虛擬機監視器 ( Virtual Machine Monitor ) 的設施來隔離操作系統與硬件或者應用程序和操作系統,以此達到虛擬化的目的。這個夾在其中的虛擬機監視器,常常被稱爲

原创 Docker實踐指南(二)

鏡像與容器 Docker 鏡像 如果進行形象的表述,我們可以將 Docker 鏡像理解爲包含應用程序以及其相關依賴的一個基礎文件系統,在 Docker 容器啓動的過程中,它以只讀的方式被用於創建容器的運行環境。 從另一個角度看,Docke

原创 Mysql數據庫的行級鎖和表級鎖

mysql的鎖是由具體的存儲引擎實現的。所以像Mysql的默認引擎MyISAM和第三方插件引擎 InnoDB的鎖實現機制是有區別的。  Mysql有三種級別的鎖定:表級鎖定、頁級鎖定、行級鎖定 一、定義 每次鎖定的是一行數據的鎖機制就是行

原创 緩存穿透,緩存擊穿,緩存雪崩的解決

緩存的使用,極大的提升了應用程序的性能和效率,特別是數據查詢方面。但同時,它也帶來了一些問題。其中,最要害的問題,就是緩存數據的一致性問題,從嚴格意義上講,這個問題無解。如果對數據的一致性要求很高,那麼就不能使用緩存。 另外的一些典型問題

原创 深入理解java虛擬機

Java虛擬機在執行Java程序的過程中會把它所管理的內存劃分爲若干個不同的數據區域。這些區域都有各自的用途,以及創建和銷燬的時間,有的區域隨着虛擬機進程的啓動而存在,有些區域則依賴用戶線程的啓動和結束而建立和銷燬。 主要分爲::堆,虛擬