原创 企業級服務器設計與實現經驗之開篇

      這個題目聽起來蠻嚇人的,畢竟本人的經驗值也不高,卻大放厥詞在這裏談“企業級”。原因有二,一是把這一年以來的開發DataServer服務器的工作做個總結;二是希望能拋磚引玉,希望這方面的研究和交流繁榮起來,畢竟,目前講這方面實

原创 網絡IO模型--事件模型

 編寫高性能的網絡應用程序,尤其是服務器端程序或進行web服務器的調優,需要深入理解網絡IO模型。爲了更好的理解IO模型,先介紹幾個術語 1、術語         1)同步、異步:這裏的同步、異步說法很詭異的,不用在上面糾結,只需要知道

原创 java事件模型討論

 什麼是事件? 說白了就是一個對象(對象A)的狀態改變了的時候,通知其他的對象(對象B)發生了這麼一件事。 這裏很自然就有兩種模式:推/拉模式。 推者,狀態改變的對象(A)通知其他對象(B) 拉者,其他對象(B)監聽感興趣的對象(

原创 Java中的DEM事件機制

 Java中的DEM事件機制   AWT中的DEM機制   責任鏈模式一章中曾談到,AWT1.0的事件處理的模型是基於責任鏈的。這種模型不適用於複雜的系統,因此在AWT1.1版本及以後的各個版本中,事件處理模型均爲基於觀察者模式的委派事件

原创 使用jdk實現事件模型的經典樣例

 經典的java事件模型 在看sun的代碼時有許多經典實現,非常值得學習,下面是sun事件處理的經典實現,具體看代碼: public class MainLoop { private static MainLoop loop=nu

原创 簡化是解決複雜性問題的首要前提---真正的管理者是把複雜的問題變得簡單化

如何執行—四化 把複雜的問題過程簡單化 把簡單的過程量化 把量化的因素流程化 把流程的因素框架化 真正的專家是把複雜的問題變得簡單化 什麼叫專家?大多數人都認爲專家是對某一個領域比較厲害的、比較專注的人就叫專家。有一種專家就是把簡單的東西

原创 Jaxb2 實現JavaBean與xml互轉

Jaxb2 實現JavaBean與xml互轉 一、簡介       JAXB(Java Architecture for XML Binding) 是一個業界的標準,是一項可以根據XML Schema產生Java類的技術。該

原创 NIO在網絡服務器中的樣例

 jdk供的無阻塞I/O(NIO)有效解決了多線程服務器存在的線程開銷問題,但在使用上略顯得複雜一些。在NIO中使用多線程,主要目的已不是爲了應對每個客戶端請求而分配獨立的服務線程,而是通過多線程充分使用用多個CPU的處理能力和處理中的等

原创 事件模型與觀察者模型的比較

 事件監聽模式其實就是一種觀察者模式,只是角度有點不同,在Java的JavaBean機制以及GUI中都使用了事件監聽模式。在如今AJAX RIA客戶端中,事件監聽模式也成爲一個主要的界面模式。 事件監聽模式分同步和異步兩種實現方式,Jav

原创 java IO 概念誤區---------同步/異步與阻塞/非阻塞的區別

 我喜歡用自己的語言通過聯繫現實生活中的一些現象解釋一些概念,當我能做到這一點時,說明我已經理解了這個概念.今天要解釋的概念是:同步/異步與阻塞/非阻塞的區別. 這兩組概念常常讓人迷惑,因爲它們都是涉及到IO處理,同時又有着一些相類似的地

原创 Leader Follower線程模型簡單實現

 在我們編寫網絡服務程序時,比較簡單的方式是per client per thread模型,這種模型當客戶端連接數快速增長是就會出現性能瓶頸,我們不能不斷的開啓新的線程,當然我們肯定是會使用線程池,但是線程的管理和頻繁的線程調度也會影響性

原创 Reactor模式和NIO

 當前分佈式計算 Web Services盛行天下,這些網絡服務的底層都離不開對socket的操作。他們都有一個共同的結構:1. Read request 2. Decode request 3. Process service 4. E

原创 jdk5.0併發包線程池的實現機制

 Jdk在5.0以後提供了一個全新的線程運行控制機制,其實現被封裝在java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks三個包中,實現了執行

原创 why使用反應器模式

 一、Reactor的應用場景 Reactor這個詞譯成漢語還真沒有什麼合適的,很多地方叫反應器模式,但更多好像就直接叫reactor模式了,其實我覺着叫應答者模式更好理解一些。通過了解,這個模式更像一個侍衛,一直在等待你的召喚,或者叫召

原创 Java NIO之選擇就緒模式

   Java NIO出現不只是一個技術性能的提高,你會發現網絡上到處在介紹它,因爲它具有里程碑意義,從JDK1.4開始,Java開始提高性能相關的功能,從而使得Java在底層或者並行分佈式計算等操作上已經可以和C或Perl等語言並駕齊驅