原创 RabbitMQ 安裝 —— Windows 7 原

RabbitMQ 安裝 —— Windows 7 本文是在 Windows 7(64 bit)操作系統中安裝 RabbitMQ 的指導。 下載並安裝 Erlang,本文使用 OTP 21.1 Windows 64-bit Binary F

原创 分佈式 ID 生成算法 -- Snowflake 原

分佈式 ID 生成算法 -- Snowflake Snowflake 是 Twitter 採用的一種分佈式 ID 生成算法。 核心 Snowflake 算法生成的 ID 包含四個部分: 最高一位 佔用 1 bit,值始終是 0,沒有實

原创 MySQL 數據大小查詢方法 原

MySQL 數據大小查詢方法 首先,進入 MySQL monitor mysql -u用戶名 -p密碼 其次,進入 information_schema 數據庫 USE information_schema; 查詢數據大小 查詢所有數

原创 MySQL 共享鎖和排他鎖 原

MySQL 共享鎖和排他鎖 MySQL 的共享鎖和排他鎖都屬於悲觀鎖(參考:樂觀鎖和悲觀鎖) 共享鎖 共享鎖又稱讀鎖,簡稱 S 鎖,多個事務可以同時爲同一數據加共享鎖。數據被添加共享鎖後可以被多個事務同時讀取,但是無法被修改。 MySQL

原创 REST 原

REST REST(Representational State Transfer),是 Roy Fielding 博士於 2000 年在他的博士論文《Architectural Styles and the Design of Netwo

原创 緩存淘汰算法 FIFO,LFU,LRU 原

緩存淘汰算法 FIFO,LFU,LRU FIFO,LFU,LRU 是常見的緩存淘汰算法,又稱頁面置換算法。 FIFO FIFO 全稱 First In, First Out,即先進先出,符合隊列特性,數據結構上使用隊列 Queue 實現。

原创 設計模式六大原則 原

設計模式六大原則 1. 單一職責原則(Single Responsibility Principle, SRP) 單一職責原則是指一個類只負責一個功能領域中的相應職責,職責越多,複用的可能性越低,耦合度越高,是實現高內聚、低耦合的指導原則。

原创 樂觀鎖和悲觀鎖 原

樂觀鎖和悲觀鎖 樂觀鎖 樂觀鎖(Optimistic Locking)假設數據不會出現衝突,每次取數據時都不會被他人修改,所以不需要加鎖,但是每次更新前會判斷在取數據和更新數據期間是否有人修改過這個數據。 樂觀鎖適用於讀密集且寫較少的應用,

原创 RPC 原

RPC RPC 全稱 Remote Procedure Call,遠程過程調用,即本地調用遠程服務。 RPC 基於動態代理。 原理 RPC 設計構成包括:Client,Client Stub,Network,Server Stub,Serv

原创 分佈式 BASE 理論 原

分佈式 BASE 理論 分佈式 BASE 理論是基於 CAP 理論 中【一致性(Consistency)】和【可用性(Availability)】相互權衡產生的。 BASE 理論指出:即使無法實現強一致性,也需要根據各自應用特點採取適當方式

原创 EMQ 安裝 —— Windows 7 原

EMQ 安裝 —— Windows 7 本文是在 Windows 7(64 bit)操作系統中安裝 EMQ 2.0 (Erlang/Enterprise/Elastic MQTT Broker) 的指導。 下載 EMQ,本文使用 emq

原创 Java 編程實踐原則 原

避免使用字符串常量 常量定義儘量使用枚舉 Getter 返回對象屬性時需要考慮對象溢出風險 慎重重寫 Object 類的 clone 方法,注意深拷貝和淺拷貝問題 避免創建單一線程,使用線程池 注意 32 位系統中

原创 對稱加密 原

對稱加密 對稱加密(又稱私鑰加密)是採用單一密鑰的加密方法,即加密和解密兩個過程都使用相同的密鑰,是出現較早的加密技術。 圖例 優點 技術成熟 算法公開 計算量小 加密速度快,效率高 缺點 密鑰分發:在加密通道建立前如何安全地分發密

原创 AES 加密算法 原

AES 加密算法 AES(Advanced Encryption Standard) 加密算法是一種對稱加密算法。 密鑰長度 AES 加密支持的密鑰長度:128, 192, 256,長度越長安全性越高,性能越差。 分組加密 AES 在對明文

原创 非對稱加密 原

非對稱加密 非對稱加密(又稱公鑰加密)使用兩個密鑰:公鑰(public key)和私鑰(private key),公鑰和私鑰成對出現。使用公鑰加密的數據只能用對應的私鑰解密,使用私鑰加密的數據只能用對應的公鑰解密。因爲加解密使用不同的密鑰,