原创 從servlet到spring mvc

一:什麼是servlet Java Servlet 簡稱servlet是運行在 Web 服務器或應用服務器上的程序,它是作爲來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。 使用 Se

原创 redis常見應用場景

String存儲 點擊計數功能,incr key:001自增,如鏈接點擊數. 分佈式鎖 set key value nx px 1000//通過setnx設置隨機值並設置失效時間,寫值成功既加鎖成功。 集羣環境的session共享

原创 Redis數據結構及重要命令

一.全局命令 1.查看所有鍵:keys * 2.鍵總數 dbsize //若存在大量鍵,一般線上不建議使用此命令 3.檢查鍵是否存在:exists key //存在返回1,不存在返回0 4.刪除鍵:del key //返回刪除鍵個數,不存在

原创 消息隊列概述及ActiveMQ使用

消息中間件定義 一般認爲,消息中間件屬於分佈式系統中一個子系統,關注於數據的發送和接收,利用高效可靠的異步消息傳遞機制對分佈式系統中的其餘各個子系統進行集成。 爲什麼要用消息中間件 隨着系統的發展,各個模塊越來越龐大、業務邏輯越來越複雜,必

原创 一致性原理與zookeeper集羣

1.一致性協議 1.1兩階段提交2PC: 本身是一致強一致性算法,所以很適合用作數據庫的分佈式事務。其實數據庫的經常用到的TCC本身就是一種2PC。 數據庫事務:回顧下數據庫的事務,對一條數據的修改操作首先寫undo日誌,記錄的數據原來的樣

原创 spring基本組件及註解

spring基本組件如上圖: spring配置文件 最初使用xml配置文件,然後轉向註解。 //配置類====配置文件 @Configuration public class MainConfig { //給容器中註冊一個bean

原创 zookeeper實戰之服務註冊與發現

zookeeper應用場景 回顧下zk應用場景: 數據發佈與訂閱 服務註冊與發現 分佈式鎖 分佈式隊列 master選舉 配置中心 命名服務 負載均衡 zookeeper實現服務註冊與發現 服務註冊與發現 再來看看zk在服務註冊與

原创 zookeeper基礎

1.zookeeper簡介 ZooKeeper致力於提供一個高性能、高可用,且具備嚴格的順序訪問控制能力的分佈式協調服務,是雅虎公司創建,是Google的Chubby一個開源的實現,也是Hadoop和Hbase的重要組件。 2.設計目標

原创 分佈式系統基礎知識

1.分佈式系統是什麼 分佈式系統: 一個硬件或軟件組件分佈在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統,這是分佈式系統,在不同的硬件,不同的軟件,不同的網絡,不同的計算機上,僅僅通過消息來進行通訊與協調。 更細緻的看這

原创 NIO之Reactor模式

Reactor模式 反應堆模式:“反應”器名字中”反應“的由來: “反應”即“倒置”,“控制逆轉”,具體事件處理程序不調用反應器,而向反應器註冊一個事件處理器,表示自己對某些事件感興趣,有時間來了,具體事件處理程序通過事件處理器對某個指定的

原创 BIO與AIO模型在JDK實現,Netty基礎

BIO編程 回顧下Linux下阻塞IO模型: 再看看Java的BIO編程模型: /** * 類說明:客戶端 */ public class BioClient { public static void main(Strin

原创 Linux網絡IO模型

Linux網絡IO模型 阻塞IO模型 1.當應用程序發起網絡IO的請求時會調用操作系統recvfrom函數 2.等待系統內核準備數據報(獲取網絡數據:網卡把數據拷貝到內核) 3.數據報準備好後將數據從內核拷貝到用戶空間,即應用程序空

原创 Java網絡編程基礎(二)

TCP TCP是面向連接的丶可靠的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由於TCP是面向連接的所以只能用於端到端的通訊. 如果IP數據包中有已經封好的TCP數據包,那麼IP將把它們向‘上’傳送到TCP層。TCP將包排序並進行

原创 Redis集羣主從複製及哨兵模式實現

Redis主從複製 首先準備機器,我用的是三臺linux虛擬機,版本4.0.10. 進入三臺機器後先關閉防火牆,我的是centos7.systemctl stop firewalld.service 如圖128爲配置redis主數據庫的機

原创 Redis哨兵機制與高可用

什麼是哨兵機制 Redis的哨兵(sentinel) 系統用於管理多個 Redis 服務器,該系統執行以下三個任務: 監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的Master和Slave是否運作正常。 提醒(