原创 Nacos 集羣選舉原理

集羣選舉問題:   Nacos支持集羣模式,很顯然。而一旦涉及到集羣,就涉及到主從,那麼nacos是一種什麼樣的機制來實現的集羣呢?   Nacos的集羣類似於zookeeper, 它分爲leader角色和follower角色, 那麼從這個

原创 Nacos 服務消費原理

  繼 Nacos服務註冊原理 後,我們來看一下Nacos 是怎麼實現服務的消費的。   服務註冊成功之後,消費者就可以從nacos server中獲取到服務提供者的地址,然後進行服務的調用。在服務消費中,有一個核心的類 NacosDisc

原创 Nacos 服務註冊的原理

Nacos 服務註冊需要具備的能力: 服務提供者把自己的協議地址註冊到Nacos server 服務消費者需要從Nacos Server上去查詢服務提供者的地址(根據服務名稱) Nacos Server需要感知到服務提供者的上下線的變化

原创 Sharding-JDBC分片策略、分佈式事務、全局ID

分片策略詳解 :   https://shardingsphere.apache.org/document/current/cn/features/sharding/concept/sharding/   Sharding-JDBC 中的分

原创 Sharding-JDBC基礎概念及API操作

  在分佈式服務中,要實現數據源得選擇有如下相關方案 DAO:繼承  AbstractRoutingDataSource 類,實現對應的切換數據源的方法,結合自定義註解 + 切面實現動態數據源切換。 ORM:MyBatis 插件進行數據源

原创 算法之數據結構基礎

什麼是數組?   數組對應的英文是array,是有限個相同類型的變量所組成的有序集合,數組中的每一個變量被稱爲元素。數組是最爲簡單、最爲常用的數據結構。以整型數組爲例,數組的存儲形式如下圖所示。   正如軍隊裏的士兵存在編號一樣,數組中的

原创 算法數據結構之樹

  有許多邏輯關係並不是簡單的線性關係,在實際場景中,常常存在着一對多,甚至是多對多的情況。其中樹和圖就是典型的非線性數據結構,我們首先講一講樹的知識。 什麼是樹呢?   在現實生活中有很多體現樹的邏輯的例子。例如企業裏的職級關係,就是一個

原创 算法的基礎概念

什麼是算法?   算法,對應的英文單詞是algorithm,這是一個很古老的概念,最早來自數學領域。在數學領域裏,算法是用於解決某一類問題的公式和思想。   計算機科學領域的算法,它的本質是一系列程序指令,用於解決特定的運算和邏輯問題。從宏

原创 dubbo(2.5.3)源碼之服務消費

消費端啓動初始化過程:   消費端的代碼解析也是從配置文件解析開始的,服務發佈對應的<dubbo:service,解析xml的時候解析了一個ServiceBean,並且調用ServiceConfig進行服務的發佈。服務的消費對應的<dubb

原创 dubbo(2.5.3)源碼之服務發佈與註冊

服務端發佈流程:   dubbo 是基於 spring 配置來實現服務的發佈的,對於dubbo 配置文件中看到的<dubbo:service>等標籤都是服務發佈的重要配置 ,對於這些提供可配置化的支持,spring功不可沒,spring提供

原创 ActiveMQ消息的消費原理

消費端消費消息:   在 初識ActiveMQ 中我提到過,兩種方法可以接收消息,一種是使用同步阻塞的ActiveMQMessageConsumer#receive方法。另一種是使用消息監聽器MessageListener。這裏需要注意的是

原创 Zookeeper的Watcher 機制的實現原理

事件機制:   Watcher 監聽機制是 Zookeeper 中非常重要的特性,我們基於 zookeeper 上創建的節點,可以對這些節點綁定監聽事件,比如可以監聽節點數據變更、節點刪除、子節點狀態變更等事件,通過這個事件機制,可以基於

原创 ActiveMQ消息的發送原理

持久化消息和非持久化消息的發送策略:消息同步發送和異步發送   ActiveMQ支持同步、異步兩種發送模式將消息發送到broker上。同步發送過程中,發送者發送一條消息會阻塞直到broker反饋一個確認消息,表示消息已經被broker處理。

原创 深入分析Zookeeper的Leader 選舉實現原理

zookeeper 的由來:   分佈式系統的很多難題,都是由於缺少協調機制造成的。在分佈式協調這塊做得比較好的,有 Google 的 Chubby 以及 Apache 的 Zookeeper。Google Chubby 是一個分佈式鎖服務

原创 Mysql索引機制(B+Tree)

 1,索引誰實現的:   索引是搜索引擎去實現的,在建立表的時候都會指定,搜索引擎是一種插拔式的,根據自己的選擇去決定使用哪一個。 2,索引的定義:   索引是爲了加速對錶中數據行的檢索而創建的一種分散存儲的(不連續的)數據結構,硬盤級的。