原创 ConcurrentHashMap之實現細節

ConcurrentHashMap是Java 5中支持高併發、高吞吐量的線程安全HashMap實現。在這之前我對ConcurrentHashMap只有一些膚淺的理解,僅知道它採用了多個鎖,大概也足夠了。但是在經過一次慘痛的面試經歷之後

原创 數據庫設計涉及到的範式

國內絕大多數院校用的王珊的《數據庫系統概論》這本教材,某些方面並沒有給出很詳細很明確的解釋,與實際應用聯繫不那麼緊密,你有這樣的疑問也是挺正常的。我教《數據庫原理》這門課有幾年了,有很多學生提出了和你一樣的問題,試着給你解釋一下吧。(基本

原创 mysql死鎖分析

  線上某服務時不時報出如下異常(大約一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死鎖問題。儘管報錯不多,對性能目前看來也無太大影響,但還是需要

原创 消息隊列

應用場景: 業務解耦保證核心流程能夠正確梳理,其他非核心流程只要有通知即可 最終一致性“最終一致性”而生的消息隊列,如Notify(阿里)、QMQ(去哪兒),設計初衷就是爲了交易系統中的高可靠通知 所有跨VM的一致性問題,從技術的

原创 mysql大表設計

提問:如何設計或優化千萬級別的大表?此外無其他信息,個人覺得這個話題有點範,就只好簡單說下該如何做,對於一個存儲設計,必須考慮業務特點,收集的信息如下:1.數據的容量:1-3年內會大概多少條數據,每條數據大概多少字節; 2.數據項:是否有

原创 NBA Finals

1:3落後的時候,泰倫盧對全隊說過的一句話: 人生最重要的兩個時刻,第一個就是你出生的時刻,第二個就是你終於知道你爲什麼而出生的時刻。  你終於知道你爲什麼而出生的時刻,這個時刻,會在哪裏

原创 性能優化模式

摘要 性能優化涉及面很廣。一般而言,性能優化指降低響應時間和提高系統吞吐量兩個方面,但在流量高峯時候,性能問題往往會表現爲服務可用性下降,所以性能優化也可以包括提高服務可用性。在某些情況下,降低響應時間、提高系統吞吐量和提高服務可用性

原创 ZooKeeper示例 分佈式鎖

場景描述 在分佈式應用, 往往存在多個進程提供同一服務. 這些進程有可能在相同的機器上, 也有可能分佈在不同的機器上. 如果這些進程共享了一些資源, 可能就需要分佈式鎖來鎖定對這些資源的訪問. 本文將介紹如何利用zookeeper實現

原创 Nginx入門教程

比較不錯的nginx入門教程,供大家學習 This guide gives a basic introduction to nginx and describes some simple tasks that can be don

原创 Java8系列之重新認識HashMap

摘要 HashMap是Java程序員使用頻率最高的用於映射(鍵值對)處理的數據類型。隨着JDK(Java Developmet Kit)版本的更新,JDK1.8對HashMap底層的實現進行了優化,例如引入紅黑樹的數據結構和擴容的優化

原创 經典緩存方案

摘自 Java併發編程實踐

原创 elasticsearch搜索 方案 淺析

搜索存在的問題,及解決方案 問題1:搜索“北京”:出現 title 爲 “南京從一碗鴨血粉絲湯開始”相關的專題,而且此專題排在搜索結果的第3位;更甚的是“四川”,各種與“四”相關的專題出現 分析:elasticsearch存儲索引使

原创 git常用命令

項目初始化: $ git init $ git add *.c $ git add LICENSE $ git commit -m 'initial project version' 對已經存在的項目構建git: $ git c

原创 redis cache集羣方案

本文目標是設計高可用,易伸縮的RedisCache集羣方案,需求:  故障轉移:某個Redis實例故障應當可以把負責的key轉移到其他實例。故障實例保存的數據可能丟失,這是符合Cache應用場景需求的。 動態水平伸縮:應當可以在運行時動態

原创 命令模式應用場景

Command模式通常可應用到以下場景:   1 Multi-level undo(多級undo操作)     如果系統需要實現多級回退操作,這時如果所有用戶的操作都以command對象的形式實現,系統可以簡     單地用stack來保