原创 shardingjdbc使用詳解

1.在已有的項目中添加jar包依賴 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifa

原创 kafka,activeMq,rabbitmq,rocketMq都有什麼區別,以及適合那些場景

問題: 爲什麼使用消息隊列 消息隊列有什麼優點和缺點 kafka,activeMq,rabbitmq,rocketMq都有什麼區別,以及適合那些場景 優點:結偶,併發削峯,異步 缺點:可用性降低,系統複雜性變高, 重複消費:系

原创 zk同步模式與廣播模式

(1) 初始化廣播 前面我們說過,恢復模式具有兩個階段:Leader 選舉與初始化同步(廣播)。當完成 Leader 選舉後,此時的 Leader 還是一個準 Leader,其要經過初始化同步後才能變爲真正的 Leader。

原创 IO與NIO的主要區別是什麼

① IO是面向流的,NIO是面向緩衝區的 ② IO是阻塞的,NIO是非阻塞的 ③ IO無Selector,NIO需要Selector NIO即New IO,這個庫是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但實

原创 Java元註解有哪些

元註解的作用就是負責註解其他註解。Java5.0定義了4個標準的meta-annotation類型,它們被用來提供對其它annotation類型作說明。Java5.0定義的元註解有以下幾種: 元註解是指註解的註解,Java中有

原创 BASE 理論簡介

BASE 是 Basically Available(基本可用)、Soft state(軟狀態)和 Eventually consistent(最終一致性)三個短語的簡寫。是 CAP 定理對於一 致性與可用性權衡的結果。

原创 zk集羣的三類角色

爲了避免 Zookeeper 的單點問題,zk 也是以集羣的形式出現的。zk 集羣中的角色主要有 以下三類: Leader:事務請求的唯一處理者,也可以處理讀請求。 Follower:可以直接處理客戶端的讀請求,並向客戶端響應;

原创 redis結構概述

Redis是一個K-V NoSQL非關係型數據庫。 Redis有五種數據類型,分別string類、hash類型、list類型、set類型、zset類型。這五種類型,都是針對K-V中的V進行設計的。 關於Redis數據存

原创 Paxos 與拜占庭將軍問題

拜占庭將軍問題是由 Paxos 算法作者萊斯利·蘭伯特提出的點對點通信中的基本問題。 該問題要說明的含義是,在不可靠信道上試圖通過消息傳遞的方式達到一致性是不可能的。 所以,Paxos 算法的前提是不存在拜占庭將軍問題,即信道

原创 volatile可見性和有序性

併發三大特性: 原子性:CAS和Automic類可以實現簡單的原子性,對於複雜的操作可以使用synchronized和lock來實現 可見性:當多個線程訪問同一個變量時,其中一個線程修改了變量的值,其他的線程可以立即看到修改的值

原创 Java內存區域與內存溢出異常詳解

修訂歷史 1.jvm內存模型圖: 2.程序計數器 程序計數器(Program Counter Register)是一塊較小的內存空間,它可以看成是當前線程所執行的字節碼的行號指示器。在虛擬機的概念模型裏,字節碼解釋器工作就是

原创 zookeeper恢復模式的三個原則

當集羣正在啓動過程中,或 Leader 崩潰後,集羣就進入了恢復模式。對於要恢復的數 據狀態需要遵循三個原則。 (1) Leader 的主動出讓原則 若集羣中 Leader 收到的 Follower 心跳數量沒有過半,此時

原创 redis 過期策略和對象引用

(1) LRU lru記錄的是對象最後一次被命令程序訪問的時間,佔據的比特數不同的版本有所不同(如4.0版本佔24比特,2.6版本佔22比特)。 通過對比lru時間與當前時間,可以計算某個對象的閒置時間;object idlet

原创 redisobject詳解

前面說到,Redis對象有5種類型;無論是哪種類型,Redis都不會直接存儲, 而是通過redisObject對象進行存儲。 redisObject對象非常重要,Redis對象的類型、內部編碼、內存回收、共享對象等功能,都需要

原创 CAP 定理簡介

1.簡介 CAP定理指的是一個分佈式系統中, Consistency(一致性),Availability(可用性),Partition tolerance(分區容錯性)三者不可兼得。 一致性C:分佈式系統中多個主機之間是否能夠