原创 Docker Compose集成式應用組合與服務編排

Compose簡介 Compose項目是Docker官方的開源項目,負責實現對Docker容器集羣的快速編排。其代碼目前在 https://github.com/docker/compose 開源。 Compose定位是定義和運行多個D

原创 CAdvisor + InfluxDB + Grafana搭建Docker容器監控系統

利用docker compose組合應用並利用scale可以快速對容器進行擴充,而docker compose啓動的服務容器都在同一臺宿主機上,對於一個宿主機上運行多個容器應用時,容器的運行情況,如:CPU使用率,內存使用率,網絡狀態,磁

原创 基於Graylog的容器化應用日誌管理

Docker日誌 當一個容器啓動的時候,它其實是docker deamon的一個子進程,docker daemon可以拿到容器裏面進程的標準輸出,然後通過自身的LogDriver模塊來處理,LogDriver支持的方式很多,默認寫到本地

原创 RabbitMQ集羣和高可用方案

RabbitMQ高可用集羣方案 RabbitMQ的Cluster模式分爲兩種: 普通模式 鏡像模式 Cluster普通模式: 元數據包含以下內容: 隊列元數據:隊列的名稱及屬性 交換器:交換器的名稱及屬性 綁定關係元數據:交換器

原创 Java網絡編程--BIO阻塞式網絡編程

阻塞IO的含義 阻塞(blocking)IO :阻塞是指結果返回之前,線程會被掛起,函數只有在得到結果之後(或超時)纔會返回 非阻塞(non-blocking)IO :非阻塞和阻塞的概念相對應,指在不能立刻得到結果之前,該函數不會阻塞當

原创 Java網絡編程--NIO非阻塞網絡編程

從Java1.4開始,爲了替代Java IO和網絡相關的API,提高程序的運行速度,Java提供了新的IO操作非阻塞的API即Java NIO。NIO中有三大核心組件:Buffer(緩衝區),Channel(通道),Selector(選擇

原创 Java網絡編程--網絡協議

OSI網絡七層協議 爲使不同計算機廠家的計算機能夠互相通信,以便在更大的範圍內建立計算機網絡,有必要建立一個國際範圍的網絡體系結構標準。OSI網絡七層協議就是在這個基礎上制定出來的,其從最底層開始依次是物理層,數據鏈路層,網絡層,傳輸

原创 Java內存模型以及線程安全的可見性問題

Java內存模型 VS JVM運行時數據區 首先Java內存模型(JMM)和JVM運行時數據區並不是一個東西,許多介紹Java內存模型的文章描述的堆,方法區,Java虛擬機棧,本地方法棧,程序計數器這東西並不是Java內存模型的內容而是

原创 Fork/Join 框架及其使用

fork/join框架是ExecutorService接口的一種具體實現,會將任務分發給線程池中的工作線程,更好地利用多處理器帶來的好處,提供程序性能。它是爲那些能夠被遞歸地拆解成子任務的工作類型量身設計的。 fork/join框架的獨特

原创 ActiveMQ支持的消息協議

ActiveMQ支持哪些協議 ActiveMQ支持多種協議傳輸和傳輸方式,允許客戶端使用多種協議連接ActiveMQ支持的協議:AUTO,OpenWire,AMQP,Stomp,MQTT等ActiveMQ支持的基礎傳輸方式:VM,TCP,

原创 Docker 構建私有倉庫

Docker Hub 目前Docker官方維護了一個公共倉庫Docker Hub,其中已經包含了數量超過15000的鏡像。大部分需求都可以通過在Docker Hub中直接下載鏡像來實現。 可以在https://hub.docker.com

原创 Reactor模式

什麼是Reactor模式 Reactor模式是一種設計模式,它是基於事件驅動的,可以併發的處理多個服務請求,當請求抵達後,依據多路複用策略,同步的派發這些請求至相關的請求處理程序。 Reactor模式角色構成 在早先的論文An Objec

原创 Java網絡編程 -- NIO非阻塞網絡編程

從Java1.4開始,爲了替代Java IO和網絡相關的API,提高程序的運行速度,Java提供了新的IO操作非阻塞的API即Java NIO。NIO中有三大核心組件:Buffer(緩衝區),Channel(通道),Selector(選擇

原创 Java網絡編程 -- BIO 阻塞式網絡編程

阻塞IO的含義 阻塞(blocking)IO :阻塞是指結果返回之前,線程會被掛起,函數只有在得到結果之後(或超時)纔會返回 非阻塞(non-blocking)IO :非阻塞和阻塞的概念相對應,指在不能立刻得到結果之前,該函數不會阻塞當前

原创 線程安全之原子操作

原子操作 原子性就是指該操作是不可再分的。不論是多核還是單核,具有原子性的量,同一時刻只能有一個線程來對它進行操作。原子操作可以是一個步驟,也可以是多個步驟,但是其順序不可以被打亂,也不可以被切割而只執行其中的一部分(不可中斷性)。將操作