原创 源碼模仿之RPC 原

源碼模仿之RPC RPC - 遠程過程調用,概念不多贅述,可自行百度。 場景 統一api接口 生產者(提供遠程接口調用方) 使用者(主動調用遠程接口) 代碼實現 API接口(公共依賴包) DemoEntity (實體類) /**

原创 RedisCluster集羣之動態增刪節點 原

RedisCluster集羣之動態增刪節點 Redis基本數據結構見《Redis基本語法與數據結構》 如何搭建cluster集羣見《RedisCluster集羣之搭建》 前言:之前我們嘗試搭建了cluster集羣,並且通過redis-

原创 Centos7搭建Ruby環境 原

centos7搭建ruby環境 先安裝gcc環境 yum install gcc-c++ 獲取密鑰 gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A17

原创 設計模式 之 策略模式 原 薦

設計模式 之 策略模式 定義 提供幾個算法策略,選擇其中一個策略去執行。 優點 由於將算法封裝成單獨的策略,策略可以靈活切換。 擴展性好,符合開閉原則。 缺點 策略多,類也會變多 策略類需要對外暴露 代碼 場景 常見的加、減、乘、除

原创 《深入理解Java虛擬機》- 思維導圖 頂 原

《深入理解Java虛擬機》- 思維導圖 共13章,其中“調優案例分析與實戰”與“類文件結構”省略了,主要是前者偏向實戰,最好對照書本學習,後者省略是因爲我覺得了解就行了(汗)。 有想要思維導圖原文件的,可以加我微信,回覆“jvm思維導圖”

原创 數據權限管理中心 - 基於mybatis攔截器實現 頂 原 薦

數據權限管理中心 由於公司大部分項目都是使用mybatis,也是使用mybatis的攔截器進行分頁處理,所以技術上也直接選擇從攔截器入手 需求場景 第一種場景:行級數據處理 原sql: select id,username,region

原创 設計模式 之 迭代器模式 原

設計模式 之 迭代器模式 行爲型模式 目的 遍歷聚合對象(集合或數組)的元素 迭代器核心代碼 boolean hasNext() Object next() 介紹 迭代器模式下的角色主要分爲:迭代器 和 聚合對象。 思路: 我們先創

原创 設計模式 之 責任鏈模式 原

設計模式 之 責任鏈模式 我們平時接觸到的責任鏈模式主要有以下場景: servlet中的Filter zuul中的Filter dubbo中的Filter mybatis中的Plugin 這裏我們只說明一下Filter的實現方式,主要在

原创 淺談前後端分離項目結構的探索 頂 原 薦

直接進入主題 整體項目結構圖如下: 前臺:主要爲html頁面,目前主流的前端框架有react、vue、angular等; 中臺:接口層、路由層,比如微服務的路由、mvn的controller; 後臺:主要爲service層以及以下的層次。

原创 設計模式 之 狀態模式 原

設計模式 之 狀態模式 概念 類的行爲基於它的狀態而改變 主體思想是將各種具體的狀態類抽象出來。也就是會有很多狀態類。 使用場景 代碼中包含大量與對象狀態有關的條件語句 行爲隨狀態的改變而改變 特點 各個狀態之間可以互相轉換,比如

原创 設計模式 之 中介者模式 原

設計模式 之 中介者模式 概念 角色 約定俗成如下: Mediator:中介抽象類 ConcreteMediator:具體中介類,接收具體的同事類的消息,向具體的同事類發送消息 Colleague:抽象同事類,將中介者引入。 Concre

原创 設計模式 之 備忘錄模式 原

設計模式 之 備忘錄模式 場景 保護被保存的這些對象狀態的完整性以及內部實現不向外暴露 需要在獲取狀態的前提下,需要在外部存儲這個狀態。以便在某個時刻,恢復之前的狀態。 角色 約定俗成的三個角色: Originator(起源):原始狀

原创 設計模式 之 觀察者模式 原

設計模式 之 觀察者模式 場景 場景比較簡單,當一個對象的狀態發生改變時,自動通知所有依賴(或觀察)它的對象。 比如:發佈/訂閱 原理:發佈者存儲N個訂閱者的對象信息,當發佈者發佈消息時,循環調用所有的訂閱者的指定方法。 源碼 發佈者:Pu

原创 Redis應用之分佈式鎖(set) 原 薦

Redis應用之分佈式鎖(set) 在單機應用的場景下,我們常使用的鎖主要是synchronized與Lock;但是在分佈式橫行的大環境下,顯然僅僅這兩種鎖已經無法滿足我們的需求; 需求:秒殺場景下,有若干服務實例,假設有2個,那麼分別會有

原创 設計模式 之 模板模式 原

設計模式 之 模板模式 抽象類定義了執行的方法(方法包含若干步驟),具體的步驟由子類重寫實現。 使用場景 有多個子類共同的步驟方法 有重要的、複雜的共用方法 代碼 由於模板模式比較簡單,不過多贅述。 代碼場景:需要定義一個吃飯的模板,不