原创 linux 同步IO: sync、fsync與fdatasync

傳統的UNIX實現在內核中設有緩衝區高速緩存或頁面高速緩存,大多數磁盤I/O都通過緩衝進行。當將數據寫入文件時,內核通常先將該數據複製到其中一個緩衝區中,如果該緩衝區尚未寫滿,則並不將其排入輸出隊列,而是等待其寫滿或者當內核需要重用該緩衝

原创 一致性哈希算法

一致性哈希算法在1997年由麻省理工學院的Karger等人在解決分佈式Cache中提出的,設計目標是爲了解決因特網中的熱點(Hot spot)問題,初衷和CARP十分類似。一致性哈希修正了CARP使用的簡單哈希算法帶來的問題,使得DHT可

原创 Redis哨兵模式(sentinel)學習總結及部署記錄(主從複製、讀寫分離、主從切換)

Redis的集羣方案大致有三種:1)redis cluster集羣方案;2)master/slave主從方案;3)哨兵模式來進行主從替換以及故障恢復。 一、sentinel哨兵模式介紹 Sentinel(哨兵)是用於監控redis集羣中M

原创 redis架構演變與redis-cluster羣集讀寫方案

redis架構演變與redis-cluster羣集讀寫方案 導言 redis-cluster是近年來redis架構不斷改進中的相對較好的redis高可用方案。本文涉及到近年來redis多實例架構的演變過程,包括普通主從架構(Master、

原创 【RabbitMQ】生產者,消費者,信道,隊列,交換器和綁定

瞭解消息通信中的一些重點概念對於深化對RabbitMQ的理解有重要的意義;下面從生產者,消費者,信道,隊列,交換器和綁定,來介紹他們在消息通信過程中的角色和作用; 生產者:   創建消息,然後發佈到代理服務器(RabbitMQ) 消費者:

原创 帶着問題學習分佈式系統之數據分片

原文鏈接:https://www.cnblogs.com/xybaby/p/7076731.html 目錄 三種數據分片方式 hash方式: 一致性hash  range based 小結:

原创 Mysql中“select ... for update”排他鎖分析 (表鎖與行級鎖)

https://blog.csdn.net/claram/article/details/54023216

原创 數據庫事務隔離級別

之前對於數據庫事務概念的理解有很多不到位的地方,今天用簡單的實例再來闡述一下數據庫事務和隔離級別的概念,也方便以後溫故而知新。 1. 什麼是事務 事務(Transaction)是併發控制的基本單位。所謂的事務,它是一個操作序列,這些操作要

原创 Innodb中的事務隔離級別和鎖的關係

前言 我們都知道事務的幾種性質,數據庫爲了維護這些性質,尤其是一致性和隔離性,一般使用加鎖這種方式。同時數據庫又是個高併發的應用,同一時間會有大量的併發訪問,如果加鎖過度,會極大的降低併發處理能力。所以對於加鎖的處理,可以說就是數據庫對

原创 Joda DateTime轉爲JDK Date的陷阱

問題現象 將Joda的DateTime轉爲JDK Date可能會有奇怪的問題,在不同的機器上出現偏差,比如多了半小時、少了一小時。 試驗過程 試驗代碼 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1

原创 Date類型字段反序列化後值發生變化問題

問題現象 Date字段在不同機器上序列化、反序列化,時間值出現半個小時的偏差。 然而使用date命令查看系統時間,兩臺機器上的時間是一致的,時區都是CST(中間標準時間)。 1 2 >> date Sat Jun 9 13

原创 Zookeeper分佈式鎖

實現分佈式鎖目前有三種流行方案,分別爲基於數據庫、Redis、Zookeeper的方案,其中前兩種方案網絡上有很多資料可以參考,本文不做展開。我們來看下使用Zookeeper如何實現分佈式鎖。 什麼是Zookeeper? Zookeepe

原创 ZooKeeper簡介

前言 相信大家對 ZooKeeper 應該不算陌生。但是你真的瞭解 ZooKeeper 是個什麼東西嗎?如果別人/面試官讓你給他講講 ZooKeeper 是個什麼東西,你能回答到什麼地步呢? 我本人曾經使用過 ZooKeeper 作爲 D

原创 兩道面試題,帶你解析Java類加載機制

目錄 Java類加載機制的七個階段 加載 驗證 準備(重點) 解析 初始化(重點) 使用 卸載 實戰分析 方法論 樹義有話說 文章首發於【博客園-陳樹義】,點擊跳轉到原文《兩道面試題,帶你解析Java類加載機制》 在許多Java面試中,

原创 jvm內存模型