原创 Mysql拆分、切分

一. 數據切分 1.1 垂直(縱向)切分 1.1.1 垂直切分的優點: 1.1.2 缺點 1.2 水平(橫向)切分 1.2.1 水平切分的優點 1.2.2 缺點 1.2.3 數據分片規則 2.3.1 根據數值範圍 1.3

原创 併發_05_ThreadLocal

一、ThreadLocal(線程變量副本)介紹 二、ThreadLocal 實現原理 三、ThreadLocal爲什麼會內存泄漏 3.1 爲什麼使用弱引用 3.2 下面我們分兩種情況討論: 四、ThreadLocal 最

原创 分佈式-接口冪等性設計

保證冪等性的方式 全局唯一ID 去重表 插入或更新 多版本控制 狀態機控制 在微服務架構下,我們在完成一個訂單流程時經常遇到下面的場景: 一個訂單創建接口,第一次調用超時了,然後調用方重試了一次 在訂單創建時

原创 併發_04_Java中的線程池

一、線程池的好處 二、線程池實現原理 2.2 線程池工作原理 2.2 線程池的主要處理流程 2.3 ThreadPoolExecutor執行execute()方法 2.4 源碼分析 三、線程池的使用 3.1 線程池的創建

原创 分佈式-SOA服務化接口設計

一、服務模塊的設計方式 二、服務模塊的接口類型 2.1 簡單的數據查詢接口 2.2 帶業務邏輯的數據查詢接口 2.3 簡單的數據寫入接口 2.4 帶業務邏輯的數據寫入接口 2.5 同步接口、異步接口 三、SOA服務化接口

原创 分佈式-全局唯一id

一、常見的ID生成策略。 1.1 數據庫自增長序列或字段 1.1.1 優點: 1.1.2 缺點: 1.1.3 優化方案: 1.2 UUID 1.2.1優點: 1.2.2 缺點: 1.3 UUID的變種 1.4 Red

原创 分佈式-分佈式事務

文章目錄 ##一、分佈式事務- 二階段協議 ###1.1 前言 在單個數據庫實例時候,我們可以在一個數據源的事務(本地事務)內做多步數據庫操作,在事務內的多個操作要麼全部執行生效,要麼全部不生效。在多數據實例節點時候,我們對多個實

原创 併發_03_JAVA中的鎖

一、Lock接口 1.1 Lock的使用的方式 1.2 Lock接口特性及API 二、隊列同步器 2.1 隊列同步器的接口與示例 2.2 隊列同步器的實現分析 2.2.1 同步隊列 2.2.2 獨佔式同步狀態獲取與釋放

原创 併發_01_併發性與多線程介紹

一、併發與多線程 1.1 什麼是進程、線程?線程和進程的區別? 1.2多線程的優點 1.2.1 資源利用率更好 1.2.2 程序設計更簡單 1.2.3 程序響應更快 1.3 多線程的代價 1.3.1 設計更復雜 1.3

原创 java虛擬機_01_類的加載機制

一、類的加載機制 1.1 Java四個方面的關係 1.2 應用程序和小應用程序 1.3 JVM的組成部分 1.4 什麼是類的加載 二、類的生命週期 2.1 加載:查找並加載類的二進制數據 2.2 連接 2.2.1 驗證:

原创 java虛擬機_02_Jvm內存模型

一、內存介紹 1.1 計算機內存 1.2 Java虛擬機內存 二 JVM內存區域介紹 線程共享內存 2.1堆(Heap) 2.2 方法區(Method Area) 2.3 運行時常量池(Runtime Constant

原创 java虛擬機_05_JVM故障處理分析

一、JVM中到底哪些區域是共享的?哪些是私有的? 二、OutOfMemory錯誤分幾種? 2.1 “OutOfMemoryError:java heap size” 2.2 java.lang.OutOfMemoryErr

原创 數據庫的隔離及事務傳播屬性

一、數據庫ACID特性 1.1 原子性(Atomicity) 1.2 一致性(Consistent) 1.3 隔離性(Isoation) 1.4 持久性(Durabe) 二、隔離級別 2.1 數據庫會發生的問題 2.1.

原创 索引介紹(MySQL)

一、索引介紹 1.1 索引優點: 1.2 適合建立索引的字段: 二、索引類型 2.1 B-Tree索引 2.1.1 可以使用B-Tree索引的查詢類型: 2.1.2 索引順序查詢 2.1.3 B-Tree索引的限制 2.

原创 數據庫SQL優化

一、引起全表掃描的情況 1.1、模糊查詢效率很低 1.2、查詢條件中含有is null的select語句執行慢 1.3、查詢條件中使用了不等於操作符(<>、!=)的select語句執行慢 1.4、使用組合索引 1.5、or語