亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 如何規劃您的大型java多并發服務器程序.txt

?? 含有許多JAVA的技巧!
?? TXT
字號:
如何規劃您的大型JAVA多并發服務器程序 
(加入日期:2003-4-12 點擊數:1864)
【對此文發表評論】 【編程愛好者論壇】 【保存文章至硬盤】 【打印文章】 
 
作者: 陳林茂  

  JAVA 自從問世以來,越來越多的大型服務器程序都采用它進行開發,主要是看中

它的穩定性及安全性,但對于一個新手來說,您又如何開發您的JAVA 應用服務器,

同時又如何規劃您的JAVA服務器程序,并且很好的控制您的應用服務器開發的進度,

最后,您又如何發布您的JAVA 應用服務器呢?(由于很多前輩已有不錯的著作,我

只能在這里畫畫瓢,不足指出,請多來信指正,晚輩將虛心接受!本人的聯系方式:

linmaochen@sohu.com)


廢話少說,下面轉入正題:

本文將分以下幾個部分來闡述我的方法:

  1、 怎樣分析服務器的需求?
  
  2、 怎樣規劃服務器的架構?

  3、 怎樣規劃服務器的目錄及命名規范、開發代號?

  4、 原型的開發(-):  怎樣設計服務器的代碼骨架?

  5、 原型的開發(二): 怎樣測試您的代碼骨架?

  6、 詳細的編碼?

  7、 如何發布您的JAVA 服務器產品?


一、 如何分析服務器的需求?

   我的觀點是:
   
   1。服務器就像一臺軋汁機,進去的是一根根的甘蔗,出來的是一杯杯的甘蔗汁;

   也就是說,在開發服務器之前,先要明白,服務器的請求是什么?原始數據是什么?

   接下來要弄明白,希望得到的結果是什么? 結果數據應該怎樣來表述?

   其實要考慮的很多,無法一一列出(略)。


二、如何規劃服務器的架構?

   首先問大家一個小小的問題:在上海的大都市里,公路上的公交客車大致可以分為以下兩類:

   空調客車,票價一般為兩塊,上車不需要排隊,能否坐上座位,就要看個人的綜合能力;

   無人售票車,票價一般1 塊和一塊五毛,上車前需要規規矩矩排隊,當然,座位是每個人都有的。

   那么,我的問題是,哪類車的秩序好呢?而且上下車的速度快呢?答案是肯定的: 無人售票車。


   所以,我一般設計服務器的架構主要為:

      首先需要有一個請求隊列,負責接收客戶端的請求,同時它也應有一個請求處理機制,說到實際
    
     上,應有一個處理的接口;

      其次應該有一個輸出隊列,負責收集已處理好的請求,并準備好對應的回答;當然,它也有一個

     回答機制,即如何將結果信息發送給客戶端;


      大家都知道,服務器程序沒有日志是不行的,那么,服務器同時需要有一個日志隊列,負責整個服

     務器的日志信息收集和處理;


     最后說一點,上公交車是需要有鈔票的,所以,服務器同樣需要有一個驗證機制。

      ...(要說的東西實在太多,只好略)


三、 怎樣規劃服務器的目錄及命名規范、開發代號

    對于一般的大型服務器程序,應該有下面幾個目錄:

    bin :  主要存放服務器的可執行二進制文件;
    
    common: 存放JAVA程序執行需要的支持類庫;

    conf  : 存放服務器程序的配置文件信息;

    logs  : 存放服務器的日志信息;

    temp  : 存放服務器運行當中產生的一些臨時文件信息;

    cache : 存放服務器運行當中產生的一些緩沖文件;

    src   : 當然是存放服務器的JAVA源程序啦。

    ......(其他的設定,根據具體需求。)
  

四、原型的開發(-):  怎樣設計服務器的代碼骨架?


    1。首先服務器程序需要有一個啟動類,我們不妨以服務器的名字命名:(ServerName).class    

    2。服務器需要有一個掌控全局的線程,姑且以:(MainThread.class)命名;

    3。注意不論是短連接和長連接,每一個客戶端需要有一個線程給看著,以 ClientThread.class 命名 

    4。請求隊列同樣需要以線程的方式來表現: (InputQuene.Class),對應的線程處理類以InputProcessThread.class

       命名;

    5。輸出隊列也需要一個線程:(OutputQuene.Class),對應的處理機制以OutputProcessThread.class 命名;

    6。日志隊列也是需要一個線程的,我們以 logQuene.class,logQueneThread.Class 來命名;

    7。緩沖區的清理同樣需要定時工作的,我們以CacheThread.Class 來命名;

    8. 如果您的參數信息是以XML的方式來表達的話,那么我也建議用一個單獨的類來管理這些參數信息:

      Config.Class

    9. 當然,如果您想做得更細一點的話,不妨將客戶端客服務器端的通訊部分也以接口的形式做出來:
   
       CommInterface.Class

    ......(太多,只能有空再說!)     


五、 原型的開發(二): 怎樣測試您的代碼骨架?

     下面為原型的骨架代碼,希望大家多多提點意見!謝啦!

/* 服務器描述 : 服務器主控線程
1。讀取組態文件信息
2。建立需求輸入隊列
3。建立需求處理輸出隊列
4。建立需求處理線程
5。建立輸出預處理線程,進行需求處理結果的預處理
6. 建立緩沖區管理線程,開始對緩沖取進行管理
7。建立服務連接套捷字,接受客戶的連接請求,并建立客戶連接處理線程
*/

import java.io.*;
import java.net.*;
import java.util.*;


public class mainThread extends Thread {

  
  private ServerSocket serverSocket=null;

  /*當前服務器監聽的端口*/
  private int serverPort;

  public mainThread(String ConfUrl) {
   try{
      
      /*建立服務器監聽套接字*/
      this.serverSocket =new ServerSocket(serverPort);

    }catch(Exception e){
      //
      System.out.println(e.getMessage());
    }

  }

  /*線程的執行緒*/
  public synchronized void run(){

    while(listening){
      try{

         Socket sersocket =this.serverSocket.accept();
         
         ClientThread _clientThread=
                            new ClientThread([ParamList]);

         _clientThread.start();
        
        
       }catch(Exception e){

       }

    }

   /*退出系統*/
   System.exit(0);
}


/*
  1。完成客戶的連接請求,并驗證用戶口令
  2。接受用戶的請求,并將請求信息壓入堆棧;
  3。從結果輸出隊列中搜尋對應的結果信息,并將結果信息發送給客戶;
  4。處理需求處理過程中出現的異常,并將日志信息發送給日志服務器。
*/

import java.io.*;
import java.net.*;

public class ClientThread extends Thread {

   public ClientThread([ParamList]){

  }
   
  public void synchronized run(){

  }
}
  

/*
  請求隊列:
  1. 將客戶的需求壓入隊列
  2。將客戶的需求彈出隊列
*/


import java.util.*;

public  class InputQuene {

  private Vector InputTeam;

  public InputQuene() {

    /*初始化隊列容量*/
    InputTeam=new Vector(100);

  }

  /*需求進隊函數*/
  public synchronized void enQuene(Request request){
     InputTeam.add(request);
  }

  /*將一個請求出隊*/
  public synchronized void deQuene(int index){
    this.InputTeam.remove(index);
  }

}




/*
請求隊列處理線程 
1。按先進先出的算法從需求隊列中依次取出每一個請求,并進行處理
2。更新請求的處理狀態
3。清理已經處理過的請求
*/


import java.io.*;
import java.util.*;


public class InputProcessThread extends Thread{

  

  private InputQuene _InQuene;

  public InputProcessThread(){
  }
  
  public void run(){
  }

}


/*
  結果輸出隊列:
  1。完成輸出結果的進隊
  2。完成輸出結果的出隊
*/

import java.util.*;
import java.io.*;

public  class OutputQuene {

  //結果輸出隊列容器
  private Vector outputTeam;

  public OutputQuene() {

    //初始化結果輸出隊列
    outputTeam=new Vector(100);
  }

  //進隊函數
  public synchronized void enQuene(Result result){
    outputTeam.add(result);
  }
  
  
  /*出隊函數*/
  public synchronized void deQuene(int index){
    outputTeam.remove(index);
  }

}


/*
  結果處理線程:
  1。完成輸出結果的確認
  2。完成輸出結果文件流的生成
  3。完成文件流的壓縮處理
*/
import java.io.*;

public class OutputProcessThread extends Thread{

  
  private OutputQuene _outputQuene;

  public OutputProcessThread([ParamList]) {
    //todo
  }

  /*線程的執行緒*/
  public void run(){
    while(doing){
      try{

           /*處理輸出隊列*/
           ProcessQuene();

        }catch(Exception e){
          e.printStackTrace();
        }

    }

  }

}


/*
  日志信息處理線程: 
  功能說明:
  1。完成服務器日志信息的保存
  2。根據設定的規則進行日志信息的清理

  期望的目標:
    目前日志信息的保存在一個文件當中,以后要自動控制文件的大小。
*/


import java.io.*;
import java.util.*;

public class LogThread extends Thread{
  private LogQuene logquene;
  
  public LogThread([ParamList]){
    //todo
  }

  /*處理日志信息*/
  public void run(){
    while(doing){
     this.processLog();
     try{
       this.sleep(100);
     }catch(Exception e){
     }
    }
   }
}  



/* 功能描述:
   管理緩沖區中的文件信息,將文件所有的大小控制在系統設定的范圍之內
*/
import java.io.*;
import java.lang.*;
import java.util.*;
import java.text.*;
import java.math.*;


public class CacheThread  extends Thread{
  
  private String CachePath;
  
  /*類的建構式 : 參數:URL 緩沖區目錄的路徑信息*/
  public CacheThread(String Url) {
    this.CachePath =Url;

    /*創建文件搜索類*/
    try{
      this.CacheDir =new File(this.CachePath);
    }catch(Exception e){
      e.printStackTrace();
    }

  }

  //線程的執行緒
  public void run(){
    //定時清理緩沖區中的文件
  }

  ......

}

本欄文章均來自于互聯網,版權歸原作者和各發布網站所有,本站收集這些文章僅供學習參考之用。任何人都不能將這些文章用于商業或者其他目的。( ProgramFan.Com )
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲高清一区二区三区不卡| 国产日韩欧美不卡| 日韩视频永久免费| 中文字幕一区在线观看| 美女视频网站黄色亚洲| 91在线国产观看| 久久免费电影网| 亚洲国产一区在线观看| 成人av免费在线观看| 欧美xxxx在线观看| 视频一区二区三区中文字幕| 国产一区91精品张津瑜| 不卡一卡二卡三乱码免费网站| 成人欧美一区二区三区| 人人精品人人爱| 欧美日韩中文一区| 亚洲图片你懂的| 懂色av中文一区二区三区| 91麻豆精品国产91久久久| 亚洲日本韩国一区| gogogo免费视频观看亚洲一| 精品欧美黑人一区二区三区| 亚洲香肠在线观看| 色综合久久天天| 国产精品国产精品国产专区不蜜| 久久九九久久九九| 日韩av中文字幕一区二区三区 | 日韩中文欧美在线| 色综合久久久久久久久久久| 精品国精品自拍自在线| 奇米精品一区二区三区在线观看| 一区二区三区视频在线观看| 99久久伊人网影院| 国产欧美精品一区二区色综合| 精品乱码亚洲一区二区不卡| 亚洲444eee在线观看| 在线欧美日韩精品| 一区二区三区国产精华| 成人蜜臀av电影| 国产亚洲一本大道中文在线| 国产大陆a不卡| 国产精品看片你懂得| 成人国产电影网| 亚洲欧洲精品一区二区精品久久久| 国产亚洲精品aa| 狠狠色狠狠色综合| 日韩一区二区三区三四区视频在线观看| 欧美日韩黄色一区二区| 视频一区欧美精品| 精品国产乱码久久久久久久| 麻豆精品一二三| 精品盗摄一区二区三区| 国产99久久久国产精品潘金| 亚洲同性同志一二三专区| 色综合久久久久网| 丝袜国产日韩另类美女| 欧美精品一区二区三区四区| 国产成人aaaa| 亚洲女子a中天字幕| 91.xcao| 国产一区二区三区在线观看免费| www.欧美日韩国产在线| 亚洲综合偷拍欧美一区色| 欧美一区二区三区免费在线看| 久久一留热品黄| 91影视在线播放| 日本欧美一区二区| 欧美国产欧美综合| 91在线你懂得| 免费欧美在线视频| 久久久久九九视频| 91成人在线观看喷潮| 狠狠v欧美v日韩v亚洲ⅴ| 日韩一区在线免费观看| 欧美一级理论性理论a| 成人午夜精品一区二区三区| 亚洲一区二区三区不卡国产欧美| 精一区二区三区| 亚洲精品免费在线观看| 欧美一级黄色片| 国产成人av电影在线| 欧美老肥妇做.爰bbww视频| 另类调教123区| 欧美日韩三级一区| 另类小说图片综合网| 精品欧美乱码久久久久久1区2区 | 国产精品久久久久久亚洲毛片| 亚洲特级片在线| 欧美va日韩va| 欧美三级韩国三级日本三斤| 成人av资源网站| 天天色天天爱天天射综合| 国产精品三级视频| 99精品视频中文字幕| 久久精品二区亚洲w码| 亚洲人成人一区二区在线观看 | 亚洲精品国产精华液| 欧美日韩你懂得| 九色综合狠狠综合久久| 亚洲一区二区三区影院| 欧美经典三级视频一区二区三区| 三级亚洲高清视频| 欧美国产视频在线| 欧美一级国产精品| 国产成人av福利| 亚洲18女电影在线观看| 亚洲欧洲av在线| 国产女同性恋一区二区| 97超碰欧美中文字幕| 激情综合色播激情啊| 午夜视频久久久久久| 亚洲女同一区二区| 亚洲国产成人一区二区三区| 日韩欧美亚洲另类制服综合在线 | 欧美一级搡bbbb搡bbbb| 色综合久久久久综合体桃花网| 在线视频欧美区| 国产激情一区二区三区| 青青草精品视频| 91精品国产福利| 一色屋精品亚洲香蕉网站| 欧美日韩中文字幕一区| av男人天堂一区| 国产一区视频网站| 国产盗摄视频一区二区三区| 激情欧美日韩一区二区| 麻豆91在线播放| 亚洲成av人片| 久久国产精品72免费观看| 另类专区欧美蜜桃臀第一页| 香蕉久久一区二区不卡无毒影院 | 国产大片一区二区| 久久99精品国产麻豆婷婷洗澡| 成人午夜电影久久影院| 国产麻豆精品在线| 黄色日韩三级电影| 国精品**一区二区三区在线蜜桃| 久久综合久久综合久久| 97久久精品人人澡人人爽| 精品一区二区免费在线观看| 激情欧美日韩一区二区| 国产精品夜夜嗨| av在线不卡电影| 欧美日韩国产一二三| 欧美一区二区三区人| 日韩一区二区在线看| 在线视频国产一区| 日韩欧美在线综合网| 日韩视频免费观看高清完整版| 国产一区二区三区在线观看免费| 精品国产区一区| 欧美日韩二区三区| 日韩免费电影网站| 久久久亚洲高清| ...中文天堂在线一区| 国产日韩欧美亚洲| 亚洲伊人伊色伊影伊综合网 | 精品一区二区三区在线观看| 久久99日本精品| 成人av在线播放网站| 欧美丰满美乳xxx高潮www| 久久先锋影音av鲁色资源网| 国产精品不卡在线| 亚洲激情自拍偷拍| 国产老女人精品毛片久久| 一本色道久久加勒比精品| 777亚洲妇女| 国产日韩影视精品| 日本va欧美va欧美va精品| 国产精品系列在线播放| 欧美亚洲愉拍一区二区| 精品国产污污免费网站入口| 午夜欧美在线一二页| 精品中文av资源站在线观看| 精品一区二区三区在线播放视频 | 蜜桃av一区二区三区| 精品中文字幕一区二区| 国产+成+人+亚洲欧洲自线| 欧美精品成人一区二区三区四区| 91小视频在线免费看| 日韩一级欧美一级| 国产亚洲欧美日韩日本| 亚洲 欧美综合在线网络| 美女高潮久久久| 欧美日韩色一区| 国产精品久久久99| 高清国产一区二区| 日韩一区二区三区精品视频 | 久久这里只有精品首页| 亚洲人成在线观看一区二区| 韩国女主播成人在线观看| 91精品国产日韩91久久久久久| 欧美午夜精品久久久| 亚洲国产成人自拍| 狠狠色丁香婷婷综合久久片| 精品成人私密视频| 麻豆精品一区二区综合av| 精品视频在线免费看| 久久女同精品一区二区| 国产精品88av|