原创 分佈式理論基礎認知:一致性哈希算法(已完成遷移)

一:一致性hash算法 一致性hash場景描述: 假如有三臺緩存服務器,此時一個數據要緩存到其中一臺,並且要一次查詢快速定位。一種簡單實用的方法就是 對此時數據標識(key)進行hash取值,然後

原创 http簡單理解與認識(DNS以及CDN,不想遷移)

一:發起http:      發起一個http請求和如何建立一個socket連接區別不大,瀏覽器在建立socket連接之前,必須根據地址欄裏輸入的url域名DNS解析出ip地址,再根據ip地址和默認80端口與遠程服務器建立socket連接

原创 MySQL技術內幕 七:鎖(包括樂觀悲觀鎖)(已遷移)

一:鎖:         鎖是數據庫系統區別於文件系統的一個關鍵特性,鎖機制用於管理對共享資源的併發訪問。InnoDB存儲引擎會在行級別上對錶數據上鎖,不過在數據庫內部其他地方也使用鎖,從而允許對多種不同資源提供併發訪問。例如,操作緩衝池

原创 Mybatis原理、源碼解析

引言:jdbc連接數據庫           1.在開發環境中加載指定數據庫驅動           2.在java程序中加載驅動程序,代碼:Class.forName("com.mysql.jdbc.Driver");        

原创 線程特性使用集錦(threadLocal、併發容器(關於消費者生產者思考)、停止線程最佳實踐)

一:ThreadLocal<T> local = new ThreadLocal<>();      如: ThreadLocal<Long> startTime = new ThreadLocal<>();        使用:

原创 dubbo實踐以及原理分析

  一:RPC---遠程過程調用,java裏也可以叫遠程方法調用,只要能通過協議從一臺服務器調用到另外一臺服務器的服務信息的協議都叫RPC協議,因此 http、tcp、socket都是rpc協議。 二:Dubbo核心原理:        

原创 高性能mysql(二)schema設計以及sql執行、優化(已遷移)

1.索引覆蓋:因爲使用B+TREE存儲索引數據(索引也是數據庫的數據),因爲葉子節點上存儲着數據,其他索引也是通過主鍵去查找數據,如果可以直接把索引的數據讀出使用而不用再次進入數據庫表中進行查詢操作,可以極大地提高效率(當然被查詢的數據也

原创 Diablo項目總結(包含線程池(countDownLatch)、EventBus、長輪詢、一致性hash)

詳見本地項目 diablo-new,總結文本 yiReadMe: 注:yiReadMe 是我自己看項目過程中的一些記錄,方便回憶項目以及需要借鑑的代碼的java文件 1.此項目核心:使用的配置更新即響應,通過 EventBus 事件總線

原创 ssm基於shiro-redis 實現session共享(已完成遷移)

shiro.xml 配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

原创 Redis實戰應用 (分佈式鎖,已完成遷移)

一:爲何使用分佈式鎖:         在單個應用中,多線程下可以使用 普通的鎖 如:Synchronized 關鍵字以及 Lock(重入鎖)對公共資源進行鎖定,防止多線程衝突,但是在分佈式系統中如何解決,如果使用傳統的鎖,只能鎖定對應於

原创 Spring的一些理解(容器方面)

一: 可以看出,spring核心組件只有三個:core、context、bean。構成骨骼 二:spring是面向Bean的編程,因此bean是核心。就像演出的演員一樣。爲什麼如此重要?因爲spring解決了一個非常關鍵的問題。它可以讓你

原创 Spring、mysql事務特性的理解總結(已完成遷移)

導論:Spring事務有四種特性:ACID,五種隔離級別:default(默認爲當前數據庫使用的隔離級別)、read_uncommitted、read_committed、repeatable_read、serializable,七種傳播

原创 數據結構與算法:數據結構概念(已完成遷移)

導論:什麼是數據結構:指的是一種外在的數據展示的形式。算法:計算的方法,可以理解爲完成某一個過程中的執行思路。 一:基本概念 1.數據結構:對數據的一種存儲和組織方式,相互之間存在一種或者多種特定關係的數據的集合。數據就是存儲

原创 jvm內存模型(主存副本以及共享內存安全問題的產生以及synchronized線程安全原理和volatile關鍵字)

一:線程數據模型與安全:            多核心(cpu)中,虛擬機是 一個主存 對應多個核心(cpu),一個cpu對應着多個內存副本,(可以理解爲主存對應着堆內存,而內存副本對應着各個cpu的線程所屬的內存,線程私有)。而一個線

原创 關於spring源碼的一些心得(一)

關於spring源碼的一些心得(一)       總結:通過前面的一些認識,可以大致認爲,ioc容器就是獲取一些需要使用的對象如pojo等的引用,相當於new 而ioc容器的作用也就是用於此處,用於獲取或者讀取對象實例,