原创 是否真的需要分佈式事務

是否真的需要分佈式事務 儘量減少過度設計,太多團隊過度設計,搞的所有人疲勞不堪,而微服務過多就會引出分佈式事務,這個時候需要將用到事務的微服務聚合成一個單機服務,使用數據庫的本地事務。 分佈式事務的原則是:儘量使用數據庫的本地事務

原创 Spring核心理念

Spring核心理念 ioc:控制反轉,通過控制反轉來管理各類Java資源,從而降低了各種資源的耦合;並且提供了極低的侵入性 aop:面向切面,通過動態代理技術,允許我們按照約定進行配置編程,進而增強了bean的功能。

原创 守護線程和主線程聲明週期關係

守護線程和主線程聲明週期關係 一個進程可以有多個守護線程 可以通過Thread.setDaemon(true)來設置守護線程 a:虛擬機中可能同時有多個線程運行,只有當所有的非守護線程(通常都是用戶線程)都結束的時候,虛擬機的進程

原创 Spring IOC

Spring IOC IOC容器是一個管理bean的容器,在spring的定義中,他要求所有的ioc容器都需要實現接口BeanFactory,他是一個頂級容器接口。 在IOC容器中,默認情況下,Bean都是以單例形式存在的,也就是

原创 TCP三次握手 四次揮手

TCP三次握手 四次揮手 1、三次握手 • 客戶端向服務器發送SYN同步報文段,請求建立連接 • 服務器確認收到客戶端的連接請求,並向客戶端返送SYN同步報文,表示要想客戶端建立連接 • 客戶端收到服務器的確認請求後,處於建立連

原创 Curator幾個NodeCache節點緩存監聽

Curator幾個NodeCache節點緩存監聽 NodeCache:節點緩存可用於ZNode節點的監聽 PathCache:子節點緩存可用於ZNode的子節點的監聽 TreeCache:樹緩存時PathCache的增強,不光能監

原创 爲什麼使用消息隊列MQ

爲什麼使用消息隊列MQ 解耦:服務A是基礎服務,任何新接入的服務都要對接A服務,每個人對接A都需要改代碼。 異步:用戶一次請求A、B、C三個服務,每個服務耗時40ms,需要等待120ms,訪問A後寫入消息隊列,避免用戶等待。 削峯

原创 Spring緩存相關的註解

Spring緩存相關的註解 @CachePut:設置緩存,先執行方法,並將執行結果緩存起來 @CacheEvict :刪除緩存,在執行方法前,刪除緩存 @Cacheable:查詢緩存,先查詢註解中的key是否在緩存中,如果在直接返

原创 Connection Per Thread模式

Connection Per Thread模式 Connection Per Thread模式,一個線程處理一個連接模式,早期版本的Tomcat服務器,利用這種原理實現; 對於每一個新的網絡連接都會分配給一個線程,每隔線程都獨立處

原创 ZK實現分佈式鎖步驟

ZK實現分佈式鎖步驟 a:所有需要競爭資源的進程,都在ZK一個持久化節點創建一個臨時的有序的子節點 b:每個子節點阻塞並監聽自己上一個子節點,如果上一個刪除的時候,說明自己可以獲取鎖進行操作(上一個刪除後還要判斷下自己是不是最小的

原创 分佈式鎖原理

分佈式鎖原理 單體服務中,使用jvm內的Synchronized和Lock即可,分佈式環境下,多臺機器,對應多個jvm,多個進程,因此需要使用統一的分佈式鎖進行同步操作 ZK實現分佈式鎖的核心是:臨時有序節點 臨時可以防止死鎖,有

原创 設計模式

設計模式 a:根據使用場景 設置模式分類: 創建型模式 結構型模式 行爲型模式 b:23種設計模式 單例(Singleton)模式:某個類只能生成一個實例,該類提供了一個全局訪問點供外部獲取該實例,其拓展是有限多例模式

原创 BASE

BASE BASE 是 Basically Available(基本可用)、Soft state(軟狀態)和 Eventually consistent (最終一致性)三個短語的縮寫。是對CAP中AP的一個擴展 a:基本可用:分佈

原创 MySql一般數據達到千萬級的數據就得分庫分表

MySql一般數據達到千萬級的數據就得分庫分表

原创 Reactor反應器模式

Reactor反應器模式 反應器模式由Reactor反應器線程、handlers處理器兩大角色組成: a:Reactor反應器線程的職責:負責響應IO事件,並且分發到Handlers處理器 b:Handlers處理器的職責:非阻塞