原创 設計模式

設計模式 標籤(空格分隔): 設計模式 設計模式最初是出現在建築領域的設計中, 之後延伸到軟件設計領域. 設計模式的概念和意義 有關軟件設計模式的定義有很多, 有些從模式的特點來說明, 有些從模式的作用來說明. 1. 軟件設計模式

原创 B樹和B+樹

B樹, B+樹和MySQL索引 標籤(空格分隔): 數據結構 參考/轉載 : https://www.cnblogs.com/nullzx 1. B樹 1.1 B樹的定義 B樹也稱爲B-樹, 它是一顆多路平衡的查找樹, 當我們描述一顆

原创 Java線程

Java線程 標籤(空格分隔): 面試 線程/進程 1. sleep join yield有什麼區別 多線程的五種狀態: 新建狀態, 就緒狀態, 運行狀態, 阻塞狀態, 死亡狀態. 新建狀態: 當new 一個線程的時候, 程序還沒有

原创 MVC和三層架構

MVC和三層架構 標籤(空格分隔): 架構 設計模式 三層架構 三層架構指的是: 視圖層(View),服務層(Service)和持久層(DAO). 他們分別負責不同的功能. 單純就是指後臺的設計架構 這種架構模式是從微軟來的,

原创 JVM 內存區域

JVM 內存區域 標籤(空格分隔): Java 架構 線程/進程 1. 概述 對於Java程序員來說, 在虛擬機的自動內存管理機制之下, 不需要再像C/C++程序一樣, 需要耗費大量精力去考慮delete/free, 可以更加專注於業務

原创 深克隆和淺克隆

深克隆和淺克隆 標籤(空格分隔): 常用函數 淺克隆 淺克隆: 被複制對象的所有基本變量都含有和原來變量完全相同的值, 而其他所有的引用對象任然指向原來的對象. 換言之, 淺克隆僅僅複製鎖考慮的對象, 而不復制它所引用的對象. 克隆的深

原创 RocketMQ的高可用集羣部署

RocketMQ的高可用集羣部署 標籤(空格分隔): 消息隊列 部署 1. RocketMQ 集羣物理部署結構 Rocket 物理部署結構 Name Server: 單點,供Producer和Consumer獲取Broker地址,

原创 自定義註解

Custom nnotation 標籤(空格分隔): Java註解 1. The concept of annotation An annotation is a form of metadata, that can be added

原创 RabbitMQ的高可用集羣部署

RabbitMQ的高可用集羣部署 標籤(空格分隔): 消息隊列 部署 1. RabbitMQ部署的三種模式 1.1 單一模式 單機情況下不做集羣, 僅僅運行一個RabbitMQ. # docker-compose.yml versi

原创 消息隊列

消息隊列 標籤(空格分隔): 面試 消息隊列 1. 爲什麼使用消息隊列 會用消息隊列, 但是爲什麼要用消息隊列呢? 系統解耦 異步 削峯填谷 1.1 解耦 解決因爲數據處理能力不同, 薄弱階段一旦崩潰, 導致的一死全死.

原创 Zookeeper是如何實現分佈式鎖的

Zookeeper是如何實現分佈式鎖的 標籤 : Zookeeper 分佈式 實現分佈式鎖要考慮的重要問題 1. 三個核心要素 加鎖, 解鎖, 鎖超時 2. 三個問題 要保證原子性操作, 加鎖和鎖超時的操作要一次性執行完畢 防止誤

原创 CAP定理和BASE理論

CAP定理和BASE理論 標籤(空格分隔): 操作系統 ### CAP定理 CAP定理: 一個分佈式系統最多隻能滿足一致性 (Consistency), 可用性(Availability)和分區容錯性(Partition toleran

原创 自旋鎖

自旋鎖 標籤(空格分隔): 操作系統 1. 什麼是自旋鎖 自旋鎖是爲了實現保護共享資源而提出的一種機制, 其實自旋鎖和互斥鎖比較類似, 他們都是爲了解決對某項資源的互斥使用。無論是互斥鎖,還是自旋鎖,在任何時刻,最多只能有一個保持者,

原创 分佈式協調服務 ( 服務治理 ).

分佈式協調服務 ( 服務治理 ). 標籤(空格分隔): Java 1. 問題所在 主要用於解決分佈式環境中多個進程之間的同步控制, 讓他們有序的去訪問某種臨界資源, 防止造成髒數據的後果. 訂單服務JVM1->商品服務(庫存五個):

原创 JDK12不包含JAXB-API

用JDK12環境下 做EUREKA的的時候 報錯如下 java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present at java.ba