原创 Java 8 ThreadLocal 源碼解析

Java 中的 ThreadLocal是線程內的局部變量, 它爲每個線程保存變量的一個副本。ThreadLocal 對象可以在多個線程中共享, 但每個線程只能讀寫其中自己的副本。 目錄: 代碼示例 源碼解析 InheritableThre

原创 RabbitMQ消息中間件示例詳解

這篇文章主要給大家介紹了關於RabbitMQ消息中間件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一學習學習吧 前言 RabbitMQ 是使用

原创 MySQL 索引與查詢優化

本文介紹一些優化 MySQL 索引設計和查詢的建議。在進行優化工作前,請務必瞭解MySQL EXPLAIN命令: 查看執行計劃 索引 索引在邏輯上是指從索引列(關鍵字)到數據的映射,通過索引可以快速的由關鍵字查找到數據記錄。順序查找複雜度爲

原创 MySQL EXPLAIN 命令: 查看查詢執行計劃

MySQL 的 EXPLAIN 命令可以查看SELECT語句的執行的計劃,是 MySQL 查詢優化的必備工具。 通過執行計劃可以瞭解查詢方式、索引使用情況、需要掃描的數據量以及是否需要臨時表或排序操作等信息。 我們需要分析執行計劃對查詢進行

原创 從2PC到Paxos

在分佈式系統中,一個事務可能涉及到集羣中的多個節點。單個節點很容易知道自己執行的事務成功還是失敗,但因爲網絡不可靠難以瞭解其它節點的執行狀態(可能事務執行成功但網絡訪問超時)。 若部分節點事務執行失敗進行回滾,而其它節點完成事務提交,則事務

原创 ZAB協議簡介

Zookeeper 使用 Zookeeper Atomic Broadcast (ZAB) 協議來保障分佈式數據一致性。 ZAB是一種支持崩潰恢復的消息廣播協議,採用類似2PC的廣播模式保證正常運行時性能,並使用基於 Paxos 的策略保證

原创 ZooKeeper概念與應用

Zookeeper是開源的分佈式協調服務,提供了分佈式數據一致性的解決方案。 Zookeeper 可用作配置中心和分佈式鎖服務,在 Dubbo、Kafka、Spark等分佈式集羣上得到廣泛應用。 ZNode Zookeeper的數據模型爲樹

原创 ZooKeeper 初體驗

安裝Zookeeper Mac OS Mac 用戶可以使用 Homebrew 安裝和管理 Zookeeper 服務: brew install zookeeper 配置文件地址在: /usr/local/etc/zookeeper。 啓動

原创 ZooKeeper 分佈式鎖

在Redis分佈式鎖一文中, 作者介紹瞭如何使用Redis開發分佈式鎖。 Redis分佈式鎖具有輕量高吞吐量的特點,但是一致性保證較弱。我們可以使用Zookeeper開發分佈式鎖,來滿足對高一致性的要求。 Zookeeper 分佈式鎖原理

原创 kafka 消息隊列

kafka是使用Java和Scala編寫的一個快速可擴展的高吞吐量的分佈式消息隊列系統。 kafka將數據持久化存儲到磁盤上,自帶分區和副本機制,因而具有較好的持久化保證。 但是kafka的消息消費沒有確認機制,可能因爲consumer崩潰

原创 導航

天啦嚕,這個博客的博文已經多到不好找的地步了啊。 本來草民是因爲忘性太好於是記了很多學習筆記,手頭有很多筆記不好管理於是想來想去開了這個博客。所以,博文發佈時間與寫作時間相差甚遠,某些文風詭異,請多多海涵。 非另有說明,本博客原創內容採用創

原创 ElasticSearch入門簡介

ElasticSearch是基於Apache Lucene的分佈式搜索引擎, 提供面向文檔的搜索服務。本文以6.2.3版本爲例介紹ElasticSearch的應用。 本文首先介紹ElasticSearch中的索引和文檔的概念,並在系列的其它

原创 FFmpeg視頻處理

FFmpeg是一個用於音視頻處理的自由軟件,被廣泛用於音視頻開發。FFmpeg功能強大,本文主要介紹如何使用FFmpeg命令行工具進行簡單的視頻處理。 安裝FFmpeg可以在官網下載各平臺軟件包或者靜態編譯版本,也可以使用包管理工具安裝。

原创 Java動態代理

代理模式是指給某個對象提供一個代理對象,用戶不直接訪問原對象而是通過代理對象間接訪問。 我們可以使用代理模式實現面向切面編程(AOP), 由動態代理將切面功能織入目標方法而不侵入調用方的業務代碼。 或者使用代理模式實現遠程過程調用(RPC)

原创 Cassandra 數據模型

Cassandra的數據模型類似於關係型數據庫的模型,且提供了與SQL語言非常類似的CQL語言進行操作。 但是Cassandra的數據模型類似於多層鍵值對結構,與關係型數據庫存在巨大差別。 本文基於: [cqlsh 5.0.1 | Cass