原创 詳解Paxos算法

Paxos算法是什麼? Paxos算法是萊斯利.蘭伯特1990年提出的一種基於消息傳遞的、具有高容錯性的一致性算法。 算法描述 算法角色描述 Paxos算法中有三種角色,分別具有三種不同的行爲,一個進程可能同時充當多個角色。 Pr

原创 Integer源碼深度分析

首先,先拋出一個判斷題,如下: public static void main(String[] args) { Integer i1 = 124; Integer i2 = Integer.valueOf(124);

原创 基於jackson的序列化工具類

1.引入maven依賴 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifa

原创 maven將源碼一起打入私服中

在pom文件中添加如下配置就可以了 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactI

原创 linux環境下查看修改最大文件句柄數

1.查看文件句柄數 ulimit -a 列出結果的 open files 就是當前支持的最大句柄數 2.修改默認設置 執行命令 vim /etc/security/limits.conf 在文件末尾加上 * soft nofi

原创 阿里巴巴開發手冊-閱讀記錄

以下是對阿里巴巴java開發手冊看了後的一些總結,便於自己以後複習。 功能類命名AbstractXXXXX,XXXXXExceptionXXXXXTest boolean變量 不要用is前綴 序列化會出問題 將設計模式體現在名稱中

原创 Zookeeper僞分佈式集羣搭建

記錄一下zookeeper僞分佈式集羣搭建過程,很簡單。 基於zk-3.5.7,搭建的是三節點的僞分佈集羣。 zk下載地址:https://downloads.apache.org/zookeeper/ 下載後上傳到服務器,解壓

原创 zookeeper Leader選舉過程簡析

假如當前有三個節點(01,02,03),它們的機器id依次爲1,2, 3。 下面是選舉過程: 首先必須要超過半數的機器是活着的,我這裏三節點的集羣,也就是說只有第二臺啓動後,才能選出leader,這兩臺機器都投票的那個機器就是le

原创 java編寫一個實用的壓力測試程序

一個簡單的壓力測試程序,可設置請求地址,併發請求的線程數和總請求數 代碼結構如下: 下面直接貼代碼 1.pom依賴 <dependencies> <dependency> <groupId>org.apache.htt

原创 Redis常見緩存問題

1. 什麼是緩存穿透? 緩存一般都是key,value的形式,通過key先去緩存中查,沒有再去數據庫查。如果故意訪問一些本來就不存在就key,就會導致一直去查數據庫,如果併發量很大的話,會對數據庫造成很大壓力。簡單來說就是通過不存

原创 kafka工作原理整理

1.kafka爲什麼高吞吐率? 主要採用了以下幾種方案: 順序讀寫:日誌文件是預分配空間,順序寫入。 零拷貝:簡單來說就是將數據從磁盤讀到內核,然後直接到socker緩衝區 批量發送:消息的批量發送 消息壓縮:消息發送時壓縮,消費

原创 常用設計模式(上)

結合原理與實例介紹以下設計模式:單例,原型,工廠方法,抽象工廠,建造者,代理五種設計模式。 1.單例模式 定義:一個類只有一個實例,且該類能自行創建這個實例的一種模式。 實際運用:Spring容器中所有bean默認是單例的,jav

原创 httpclient工具類--連接池

以下是一個使用httpclient實現的連接池工具類。 1.maven依賴 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId

原创 常用設計模式(下)

結合原理與實例介紹以下設計模式:適配器,裝飾,組合,模板方法,策略,責任鏈,觀察者,迭代器等設計模式。 1.適配器模式 定義:將一個類的接口轉換成客戶希望的另外一個接口,使得原本由於接口不兼容而不能一起工作的那些類能一起工作。 實

原创 SpringCloud記錄

1.Eureka的自我保護機制 默認情況下,服務需要每隔30s向EurekaServer發送心跳,Eureka連續三次都沒收到心跳時,則認爲服務不可用,會將服務從列表中移除。如果Eureka短時間內收到的心跳數量小於應該收到的85