原创 java SPI 機制

1 SPI機制簡介 SPI的全名爲Service Provider Interface.大多數開發人員可能不熟悉,因爲這個是針對廠商或者插件的。在java.util.ServiceLoader的文檔裏有比較詳細的介紹。簡單的總結下java

原创 Java代理(二) 靜態代理

package com.tlk.proxy; /** * java靜態代理 * 步驟: * 1.定義委託類Subject * 2.定義實現類RealSubject * 3.定義代理類Proxy * 4.客戶端調用 * Cr

原创 ZooKeeper 學習 (六) ZooKeeper實現數據發佈訂閱(即配置中心)

數據發佈/訂閱(Publish/Subscribe)系統,即所謂的配置中心,顧名思義就是發佈者將數據發佈到ZooKeeper的一個或一系列節點上,供訂閱者進行數據訂閱,進而達到動態獲取數據的目的,實現配置信息的集中式管理和數據的動態更新。

原创 ZooKeeper 學習 (一) ZooKeeper的基本概念

簡單介紹ZooKeeper的幾個核心概念,後邊會深入討論 集羣角色     Leader:爲客戶端提供讀和寫服務     Follower:提供讀服務,參與Leader選舉     Observer : 提供讀服務,但不參與Lead

原创 ZooKeeper 學習 (五) 開源ZkClient操作ZooKeeper

我們主要從創建會話、創建節點、讀取數據、更新數據、刪除節點和檢查節點是否存在等方面來節點如何使用ZkClient操作ZooKeeper,具體代碼如下,鑑於方便,代碼寫到了一個類裏面,雖然不易讀,但所有內容都已包括。 package com

原创 dubbo-monitor監控安裝

1、從github上下載dubbo源碼進行編譯      下載地址爲:https://github.com/alibaba/dubbo.git 2、編譯源碼命令:首先進入~/dubbo,運行命令 mvn clean install

原创 ThreadPoolExecutor 擴展

ThreadPoolExecutor 也是一個可以擴展的線程池,它提供了beforeExecute()、afterExecute()、和terminated()3個接口對線程池進行控制。即開始執行前,執行完成後,終止後 具體擴展代碼如下

原创 一致性hash算法介紹以及Java實現

一致性哈希算法(Consistent Hashing)最早在論文《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot

原创 ZooKeeper 學習 (二) ZAB協議簡單總結

ZooKeeper並沒有完全採用Paxos算法,而是使用了一種稱爲ZooKeeper Atomic Broadcast(ZAB,ZooKeeper原子消息廣播協議)的協議作爲其數據一致性的核心算法。 包括兩種基本的模式,分別是崩潰恢復和

原创 lock tryLock lockinterruptibly 區別

ReentrantLock 鎖有好幾種,除了常用的lock ,tryLock ,其中有個lockInterruptibly 。 1)lock(), 拿不到lock就不罷休,不然線程就一直block。 比較無賴的做法。 2)tryLo

原创 jstack 生成文件中的線程介紹(JVM 內部運行線程)

前段時間因爲系統代碼問題,造成性能瓶頸,於是就dump了一份stack出來進行分析。  stack 裏面線程非常多,排查起來需要一定的經驗,所以,對它們有一定了解,可以提高排查問題的效率。以下是從網上找的一些總結,有什麼問題或者補充歡迎留

原创 nginx CSS JS加載失敗

問題 將網站部署到nginx之後,網頁可以打開,但樣式全都沒有加載,瀏覽器裏按下F12鍵,console有報錯: Resource interpreted as Stylesheet but transferred with MIME

原创 Java性能調優工具(一) Linux命令行工具(top sar vmstat iostat)

(1)top命令 第一部分     第一行:任務隊列信息,等同於uptime命令     第二行:進程統計信息     第三行:CPU統計信息       us(用戶空間CPU佔用率)、sy(內核空間CPU佔用率)     第四行:依

原创 IDEA中導入多module的Maven項目無法識別module的解決辦法

首先舉個栗子 這是正常的多module工程(spring cloud項目) 正常工程.png 這是導入出現問題的多module工程 導入出現問題的工程.png 原因: 出現該問題,是由於打開工程的時候IDEA只編譯了最外層的pom.x

原创 Java代理(三) JDK動態代理

定義 動態代理類的源碼是在程序運行期間由JVM根據反射等機制動態的生成,所以不存在代理類的字節碼文件。代理類和委託類的關係是在程序運行時確定。 實現方式 在java的動態代理機制中,有兩個重要的類或接口,一個是 InvocationH