原创 系統設計原則

    由於這段時間忙於公司平臺的搜索平臺搭建的事情,所以一直沒時間來寫東西了,就把最近看設計模式裏面的一些系統設計原則曬出來的,雖然有些觀點還不能完全理解,我相信隨着自己的項目經驗越來越多,理解這些觀點是遲早的事情:1:多用繼承,少用組合

原创 博客搬家

本人博客搬家至 http://blog.csdn.net/chenyanxiliujun

原创 我的友情鏈接

51CTO博客開發

原创 Java線程池Executors.newFixedThreadPool原理解析

    從事Java多線程開發的程序員來說,瞭解Java的線程池實現原理是必不可少的,以下將會結合Java線程池代碼來說明它的實現原理,首先,我們要思考:線程池的表現形式線程池裏面的線程什麼時候創建線程池裏面的線程什麼時候結束或者該不該結束

原创 淺談關係型數據庫事務的隔離級別

   我們知道在關係型數據庫裏面事務有四個屬性:原子性(Atomicity):事務作爲一個整體被執行,包含在其中的對數據庫的操作要麼全部被執行,要麼都不執行。一致性(Consistency):事務應確保數據庫的狀態從一個一致狀態轉變爲另一個

原创 一致性Hash Java實現版

  package test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.N

原创 我的友情鏈接

51CTO博客開發

原创 分佈式事務如何拆解成單機事務

       這段時間一直在思考分佈式事務的實現,一開始的思路總是停留在應用層面上,後來經過查看相關資料才知道,要支持分佈式事務得需要數據庫的支持,也就還是回到了數據庫層面,另外在Java裏面結合javax.sql擴展包裏面使用兩段提交協議

原创 java 實現Active Object思想

     我們一直在說併發編程,我們只知道JDK5有個併發編程包幫我們封裝好了多線程下的複雜處理機制,這篇文章的重點不是說它的底層實現原理,只想說下併發包的編程模式思想,我以前一直在想這種思想來源於哪裏,面向對象編程的好處應該就是能總結一種

原创 關於事務與併發

    今天看到一個技術羣裏面聊到事務與併發的關係,發現好多開發者的理解不一樣,想把自己再工作中遇到的例子在這裏呈現出來,以告訴大家自己所理解的事務與併發,先簡單說下流程吧!   我們公司的A,B系統通信使用的是ActiveMQ,主要是訂單

原创 系統設計原則

    由於這段時間忙於公司平臺的搜索平臺搭建的事情,所以一直沒時間來寫東西了,就把最近看設計模式裏面的一些系統設計原則曬出來的,雖然有些觀點還不能完全理解,我相信隨着自己的項目經驗越來越多,理解這些觀點是遲早的事情:1:多用繼承,少用組合

原创 爲了防止程序重排序,慎用volatile

    之前在InfoQ看到一篇關於java重排序的一篇文章,覺得裏面有些知識寫得太絕對了,於是想通過實際程序來說明一下:    關於java重排序,這裏就不做介紹了,我們知道JVM底層封裝了與OS的交互,它內部有自己的一套類似於OS的內存

原创 String類的substring方法bug

    今天再看JDK源碼的時候看到了String類的不同版本的實現方式的不同,主要是substring這個方法,JDK6裏面的實現方式是:很明顯可以看到,調用String對象的substring方法後指向的對象地址並沒有發生改變,只是改變

原创 基於netty,hessian的RPC框架

    最近花了一週的時間,寫了一個可擴展的RPC框架,服務可擴展,協議可擴展,目前只有實現netty的服務,協議分別實現了hessian和java自帶的序列化協議,後續有時間灰更新其他的服務以及協議,傳輸協議使用自己自定義的協議前四個字節

原创 netty上傳文件bug

   之前公司有個同事離職,然後我交接了他的一些項目,其中有一個日誌項目,主要就是業務部門調用Client往服務器上傳日誌文件,這個過程使用了netty,問題很奇怪大致如下:1:一天中總有那麼幾個文件會上傳失敗報的異常信息是:20:08:0