<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    vickzhu

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks

    2010年5月9日 #

    ##通用查詢?nèi)罩荆河涗浗⒌目蛻舳诉B接和執(zhí)行的語句
    ##慢查詢?nèi)罩荆河涗浰袌?zhí)行時間超過long_query_time值的所有查詢或者不使用索引的查詢
    ##查看數(shù)據(jù)庫版本
    SHOW VARIABLES LIKE '%version%';
    ##查看通用查詢?nèi)罩?/div>
    SHOW VARIABLES LIKE '%general%';
    ##設(shè)置通用查詢?nèi)罩緸殚_啟
    SET GLOBAL general_log=ON;
    ##設(shè)置通用查詢?nèi)罩緸殛P(guān)閉
    SET GLOBAL general_log=OFF;
    ##查看當前慢查詢?nèi)罩据敵龅母袷剑梢允荈ILE(存儲在數(shù)數(shù)據(jù)庫的數(shù)據(jù)文件中的hostname.log),也可以是TABLE(存儲在數(shù)據(jù)庫中的mysql.general_log)
    SHOW VARIABLES LIKE '%log_output%';
    ##設(shè)置查詢?nèi)罩据敵龅轿募?/div>
    SET GLOBAL log_output='file';
    ##設(shè)置慢查詢?nèi)罩颈4娴奈募?/div>
    SET GLOBAL slow_query_log_file="/var/lib/mysql/localhost-slow.log";
    ##查看慢查詢相關(guān)設(shè)置
    SHOW VARIABLES LIKE '%slow_query%';
    ##設(shè)置慢查詢閾值為1,默認為10
    SET GLOBAL long_query_time=1;
    ##設(shè)置慢查詢閾值為10,默認為10
    SET GLOBAL long_query_time=10;
    ##查看慢查詢的閾值
    SHOW GLOBAL VARIABLES LIKE '%long_query_time%';
    ##查看有多少慢查詢
    SHOW GLOBAL STATUS LIKE '%Slow_queries%';
    ##睡眠11秒,測試慢查詢
    ##select SLEEP(11);
    posted @ 2018-10-09 16:59 筱 筱 閱讀(181) | 評論 (0)編輯 收藏

    velocity properties加載時是放在HashMap中的,首先會加載configLocation中指定文件的內(nèi)容,然后加載VelocityConfigurer中通過velocityProperties配置的屬性,
    因此,在VelocityConfigurer中配置的屬性會覆蓋configLocation指定文件中的屬性
    posted @ 2014-08-22 11:03 筱 筱 閱讀(5893) | 評論 (0)編輯 收藏

    1、達到默認最大buffer size
    2、調(diào)用HttpServletResponse.flushBuffer()
    3、調(diào)用HttpServletResponse.getOutputStream().flush()或者HttpServletResponse.getWriter().flush()
    4、調(diào)用HttpServletResponse.sendError()或者HttpServletResponse.sendRedirect()
    posted @ 2014-07-23 13:11 筱 筱 閱讀(5902) | 評論 (0)編輯 收藏

    <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.7</source>
              <target>1.7</target>
              <encoding>UTF-8</encoding>
              <compilerArguments>
                <extdirs>WebContent/WEB-INF/lib</extdirs>
              </compilerArguments>
              </configuration>
            </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
              <webXml>WebContent/WEB-INF/web.xml</webXml>
              <warSourceDirectory>WebContent</warSourceDirectory>
            </configuration>
          </plugin>
        </plugins>
    posted @ 2013-11-01 17:03 筱 筱 閱讀(6453) | 評論 (1)編輯 收藏

    在onPrepareDialog()中添加如下代碼:
    AlertDialog syncDialog = (AlertDialog) dialog;
    Button button = syncDialog.getButton(AlertDialog.BUTTON_POSITIVE);
    button.setText("確定");
    button.setVisibility(View.VISIBLE);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
    posted @ 2013-03-01 12:51 筱 筱 閱讀(7034) | 評論 (0)編輯 收藏

    uml
    1. 類圖之間的關(guān)系
    2. 依賴和關(guān)聯(lián)關(guān)系:
      依賴:是類與類之間的連接,表示一個類依賴于另一個類的定義。例如如果A依賴于B,則B體現(xiàn)為局部變量,方法的參數(shù)、或靜態(tài)方法的調(diào)用。 
      關(guān)聯(lián):類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法, 具體表現(xiàn)為類的成員變量中包含某個對象 

      組合和聚合:
      在有整體和部分關(guān)系是才有組合和聚合的概念,屬于關(guān)聯(lián)關(guān)系
      組合:部分離開整體不能存在
      聚合:部分可以離開整體而存在

    3. 用例圖之間的關(guān)系:
    4. 包含、泛化、擴展
      包含:當兩個或多個用例中共用一組相同的動作,這時可以將這組相同的動作抽出來作為一個獨立的子用例,供多個基用例所共享。因為子用例被抽出,基用例并非一個完整的用例,所以include關(guān)系中的基用例必須和子用例一起使用才夠完整,子用例也必然被執(zhí)行 
      泛化:繼承關(guān)系,子用例將繼承基用例的所有行為 ,也就是說在任何使用基用例的地方都可以用子用例來代替。領(lǐng)導(dǎo)擁有審批的權(quán)限,而請假申請審批、加班申請審批都是審批的子類
      擴展:對基用例的擴展,基用例是一個完整的用例,即使沒有子用例的參與,也可以完成一個完整的功能。 

    posted @ 2012-06-29 11:42 筱 筱 閱讀(5767) | 評論 (0)編輯 收藏

    學(xué)習(xí)osworkflow
    http://my.so-net.net.tw/idealist/OSWorkflow/
     

    wfentry表中的state字段來自于接口WorkflowEntry,有如下幾個值:
        public static final int CREATED = 0;
        public static final int ACTIVATED = 1;
        public static final int SUSPENDED = 2;
        public static final int KILLED = 3;
        public static final int COMPLETED = 4;
        public static final int UNKNOWN = -1;


    Workflow接口相當于我們service層的接口,而WorkflowStore接口相當于我們DAO層的接口,
    我們知道osworkflow提供的Workflow實現(xiàn)(如:BasicWorkflow)有時并不能滿足業(yè)務(wù)的需要,因此我們可以實現(xiàn)自己的Workflow,具體可以參照BasicWorkflow 
    繼承AbstractWorkflow,接著加入自己想要的方法。同理,我們可以通過繼承相應(yīng)的WorkflowStore(如:HibernateWorkflowStore)來編寫自己的方法
    posted @ 2012-06-26 14:49 筱 筱 閱讀(5728) | 評論 (0)編輯 收藏

    1、日期格式化:
        DateFormat
        SimplateDateFormat

    2、數(shù)字格式化
        NumberFormat
        DecimalFormat

    3、字符串格式化:
        MessageFormat 以{0},{1}作為占位符,如果你的pattern中有兩個以上的{0},在format時都會用第一個參數(shù)替換
        String.format 以%s作為占位符,按傳入的參數(shù)一一匹配
        
    posted @ 2011-09-01 17:39 筱 筱 閱讀(3141) | 評論 (0)編輯 收藏

    文字:openfire
    語音/視頻:FMS,red5
    posted @ 2011-08-29 13:58 筱 筱 閱讀(2756) | 評論 (1)編輯 收藏

    在使用svn add 時提示:
    A  (bin)  templates/translate/screen/selectTransLang.vm
    請看官方文檔的解釋:

    當你第一次添加或者導(dǎo)入文件到Subversion中時,Subversion會檢測該文件是否是二進制文件。目前,Subversion的策略是只檢測文件的前1024個字節(jié);如果所有字節(jié)都是0,或者超過15%都是非ASCII碼輸出字符的話,那么Subversion就認定該文件是二進制文件。
    如果Subversion認定文件是二進制文件,那么這個文件就會自動添加svn:mime-type屬性,并設(shè)置為“application/octet-stream”。(你隨時可以使用auto-props特性來重寫這樣的行為,或者使用svn propset手動設(shè)置屬性。)
    Subversion對以下的文件做普通文本處理:
    1、沒有設(shè)置svn:mime-type屬性的文件
    2、文件的svn:mime-type屬性值以“text/”開頭
    3、文件的svn:mime-type屬性值等于“image/x-xbitmap”
    4、文件的svn:mime-type屬性值等于“image/x-xpixmap”

    所有其他文件都將被視為二進制文件處理,這意味著Subversion:
    1、不會嘗試在svn update或者svn merge操作時將遠程修改合并到本地中
    2、在svn diff中不會顯示出不同
    3、在svn blame不會每行顯示版本和作者信息

    在其他方面,Subversion將二進制文件和其他文本文件一樣對待
    需要注意,不管是不是二進制文件,都不會影響版本庫中用來存儲文件變更的空間大小,也不會影響客戶端和服務(wù)端之間的通訊量。出于存儲和傳輸考慮,Subversion使用的是對二進制文件和普通文本文件一致處理的diffing方法;這和‘svn diff’使用的diffing方法完全不相關(guān)。

    好了,我們來看看剛才加的文件是否為二進制:
    進入.svn/props 發(fā)現(xiàn)生成文件:selectTransLang.vm.svn-work
    內(nèi)容如下:
    K 13
    svn:mime-type
    V 24
    application/octet-stream
    END
    或者用如下方法
    svn propget svn:mime-type selectTransLang.vm
    輸出:application/octet-stream

    解決方法,直接編輯去掉這個屬性
    svn propedit svn:mime-type selectTransLang.vm
    或者刪除.svn/props/selectTransLang.vm.svn-work

    看看網(wǎng)上其他牛人的解決方法:
    修改~/.subversion/config
    找到最后一個section,在最后加上如下一行話:
    *.txt = svn:mime-type=text/plain;svn:eol-style=native
    光這個還不夠,向上搜索到這么一行
    # enable-auto-props = yes
    把前面用來注釋這行的那個#和其后的空格去掉

    如果用的是TortoiseSVN,開始菜單 -> TortoiseSVN -> Settings -> General,此時右側(cè)有一個名為Edit的按鈕,點擊之后就可以編輯config了

    posted @ 2011-08-04 21:51 筱 筱 閱讀(4032) | 評論 (0)編輯 收藏

    gson:java對象和json之間相互轉(zhuǎn)換
    xsteam:java對象和xml之間相互轉(zhuǎn)換
    posted @ 2011-07-15 16:55 筱 筱 閱讀(2326) | 評論 (0)編輯 收藏

    在頁面中顯示某字段時,字段值過長會導(dǎo)致頁面樣式錯亂,這時候我們需要對值進行截取,當截取值時會碰到以下問題:
    1、如果按字符截取會導(dǎo)致中英文顯示的長度不一
    2、如果按字節(jié)截取可能會導(dǎo)致最后一個中文截成兩部分
    以下代碼是在網(wǎng)上獲取并經(jīng)過改造而成,能夠很好的解決上面兩個問題
        /**
         * 根據(jù)指定字節(jié)數(shù)截取字符串,當指定處為中文第一個字節(jié)時少截取一個字符,當長度大于指定截取長度時,截取后在字符串末尾追加指定字符串<br/>
         * 這里添加了字符串的編碼,因為頁面的編碼不同,字符串所占字節(jié)也不同
         *
         * @param str 待截取字符串,如果為null或者"",則立即返回str
         * @param length 需要截取的長度
         * @param endStr 截取后末尾追加的字符串
         * @param charset 待截取字符串的編碼
         * @return
         */
        public String subStringByByte(String str, int length, String endStr, String charset) {
            if (str == null || "".equals(str.trim()) || length <= 0) {
                return str;
            }
            try {
                int strlen = str.getBytes(charset).length;// 這里要和頁面的編碼相關(guān)
                if (strlen < length) return str;
                Pattern p = Pattern.compile("^[""u4e00-""u9fa5]$");
                int i = 0, j = 0;
                int sublength = length - ((endStr == null) ? 0 : endStr.getBytes(charset).length);
                for (char c : str.toCharArray()) {
                    Matcher m = p.matcher(String.valueOf(c));
                    i += m.find() ? 2 : 1;
                    ++j;
                    if (i == sublength) break;
                    if (i > sublength) {
                        --j;
                        break;
                    }
                }
                return str.substring(0, j) + endStr;
            } catch (UnsupportedEncodingException e) {
                return str;
            }
        }
    posted @ 2010-12-14 10:49 筱 筱 閱讀(350) | 評論 (0)編輯 收藏

    英文不太好,經(jīng)常忘記,所以現(xiàn)在寫下來:
    1,transient:在序列化一個類時,如果類中某個字段不想被序列化,則使用此關(guān)鍵字
    2、volatile:用于線程同步時

    posted @ 2010-12-13 20:49 筱 筱 閱讀(241) | 評論 (0)編輯 收藏

    根據(jù)分代收集器原理(可以參考垃圾回收機制分類),JVM的內(nèi)存可分為三個域: 新域、舊域以及永久域
    JVM生成的所有新對象放在新域中。一旦對象經(jīng)歷了一定數(shù)量的垃圾收集循環(huán)后,便進入舊域。而在永久域中是用來存儲JVM自己的反射對象的,如class 和method對象,而且GC(Garbage Collection)不會在主程序運行期對永久域進行清理。其中新域和舊域?qū)儆诙眩谰糜蚴且粋€獨立域并且不認為是堆的一部分
    一、java.lang.OutOfMemoryError: PermGen space

    PermGen space的全稱是Permanent Generation space,是指內(nèi)存的永久保存區(qū)域,
    這塊內(nèi)存主要是被 JVM存放Class和Method信息的,Class在被Loader時就會被放到PermGen space中,
    它和存放類實例 (Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會在主程序運行期對
    PermGen space進行清理,所以如果你的應(yīng)用中有很多CLASS的話,就很可能出現(xiàn)PermGen space錯誤,
    這種錯誤常見在web服務(wù)器對 JSP進行pre compile(預(yù)編譯)的時候。如果你的WEB APP下都用了大量的第三方j(luò)ar, 其大小
    超過了jvm默認的大小(4M)那么就會 產(chǎn)生此錯誤信息了。
    解決方法: 手動設(shè)置MaxPermSize大小

    修改TOMCAT_HOME/bin/catalina.sh
    在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
    JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
    建議:將相同的第三方j(luò)ar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少 jar 文檔重復(fù)占用內(nèi)存的目的。

    二、java.lang.OutOfMemoryError: Java heap space
    Heap size 設(shè)置
    JVM堆 的設(shè)置是指java程序運行過程中JVM可以調(diào)配使用的內(nèi)存空間的設(shè)置.JVM在啟動的時候會自動設(shè)置Heap size的值,
    其初始空間(即 -Xms)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可
    進行設(shè) 置。Heap size 的大小是Young Generation 和Tenured Generaion 之和(新域和舊域之和)。
    提示:在JVM中如果98% 的時間是用于GC且可用的Heap size 不足2%的時候?qū)伋龃水惓P畔ⅰ?br /> 提示:Heap Size 最大不要超過可用物理內(nèi)存的80%,一般的要將-Xms和-Xmx選項設(shè)置為相同,而-Xmn為1/4的-Xmx值。
    解決方法:手動設(shè)置 Heap size
    修改TOMCAT_HOME/bin/catalina.sh
    在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
    JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"


    posted @ 2010-08-19 20:39 筱 筱 閱讀(242) | 評論 (0)編輯 收藏

    動態(tài)應(yīng)用,是相對于網(wǎng)站靜態(tài)內(nèi)容而言, 是指以c/c++、php、Java、perl、.net等 服務(wù)器端語言開發(fā)的網(wǎng)絡(luò)應(yīng)用軟件,比如論壇、網(wǎng)絡(luò)相冊、交友、BLOG等常見應(yīng)用。動態(tài)應(yīng)用系統(tǒng)通 常與數(shù)據(jù)庫系統(tǒng)、緩存系統(tǒng)、分布式存儲系統(tǒng)等密不可分。

    大型動態(tài)應(yīng)用系統(tǒng)平臺主要是針對于大流 量、高并發(fā)網(wǎng)站建立的底層系統(tǒng)架構(gòu)。大型網(wǎng)站的運行需要一個可靠、安全、可擴展、易維護的應(yīng)用系統(tǒng)平臺做為支撐,以保證網(wǎng)站應(yīng)用的平穩(wěn)運行。

    大型動態(tài)應(yīng)用系統(tǒng)又可分為幾個子系統(tǒng):

    l         Web前端系統(tǒng)

    l         負載均衡系統(tǒng)

    l         數(shù)據(jù)庫集群系統(tǒng)

    l         緩存系統(tǒng)

    l         分布式存儲系統(tǒng)

    l         分布式服務(wù)器管理系統(tǒng)

    l         代碼分發(fā)系統(tǒng)

    Web前端系統(tǒng)

    結(jié)構(gòu)圖:

    為了達到不同應(yīng)用的服務(wù)器共享、避免單點故障、集中管理、統(tǒng)一配置等目的,不以應(yīng)用劃分服 務(wù)器,而是將所有服務(wù)器做統(tǒng)一使用,每臺服務(wù)器都可以對多個應(yīng)用提供服務(wù),當某些應(yīng)用訪問量升高時,通過增加服務(wù)器節(jié)點達到整個服務(wù)器集群的性能提高,同 時使他應(yīng)用也會受益。該Web前端系統(tǒng)基于Apache/Lighttpd/Eginx等 的虛擬主機平臺,提供PHP程序運行環(huán)境服務(wù)器對開發(fā)人員是透明的,不需要開發(fā)人員介入服務(wù)器管理

    負載均衡系統(tǒng)


    負載均衡系統(tǒng)分為硬件和軟件兩種。硬件負載均衡效率高,但是價格貴,比如F5等。軟件負載均衡系統(tǒng)價格較低或者免費,效率較硬件負載均衡系統(tǒng) 低,不過對于流量一般或稍大些網(wǎng)站來講也足夠使用,比如lvs,nginx。大多數(shù)網(wǎng)站都是硬件、軟件負載均衡系統(tǒng)并用。

    數(shù)據(jù)庫集群系統(tǒng)

    結(jié)構(gòu)圖:


    由于Web前端采用了負載均衡集群結(jié)構(gòu)提高了服務(wù)的有效性和擴展性,因此數(shù)據(jù)庫必須也是高可靠的才能保證整個服務(wù)體系的高可靠性,如何構(gòu)建一個高可靠的、可以提供大規(guī)模并發(fā)處理的數(shù)據(jù)庫體系?

    我們可以采用如上圖所示的方案:

    1)        使用 MySQL 數(shù)據(jù)庫,考慮到Web應(yīng)用的數(shù)據(jù)庫讀多寫少的特點,我們主要對讀數(shù)據(jù)庫做了優(yōu)化,提供專用的讀數(shù)據(jù)庫和寫數(shù)據(jù)庫,在應(yīng)用程序中實現(xiàn)讀操作和寫操作分別訪問不同的數(shù)據(jù)庫。

    2)        使用 MySQL Replication 機制實現(xiàn)快速將主庫(寫庫)的數(shù)據(jù)庫復(fù)制到從庫(讀庫)。一個主庫對應(yīng)多個從庫,主庫數(shù)據(jù)實時同步到從庫。

    3)        寫數(shù)據(jù)庫有多臺,每臺都可以提供多個應(yīng)用共同使用,這樣可以解決寫庫的性能瓶頸問題和單點故障問題。

    4)        讀數(shù)據(jù)庫有多臺,通過負載均衡設(shè)備實現(xiàn)負載均衡,從而達到讀數(shù)據(jù)庫的高性能、高可靠和高可擴展性。

    5)        數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器分離。

    6)        從數(shù)據(jù)庫使用BigIP做負載均衡。

    緩存系統(tǒng)


    緩存分為文件緩存、內(nèi)存緩存、數(shù)據(jù)庫緩存。在大型Web應(yīng)用中使用最多且效率最高的是內(nèi)存緩存。最常用的內(nèi)存緩存工具是Memcachd。使用正確的緩存系統(tǒng)可以達到實現(xiàn)以下目標:

    1、   使用緩存系統(tǒng)可以提高訪問效率,提高服務(wù)器吞吐能力,改善用戶體驗。

    2、   減輕對數(shù)據(jù)庫及存儲集服務(wù)器的訪問壓力

    3、Memcached服務(wù)器有多臺,避免單點故障,提供高可靠性和可擴展性,提高性能。

    分布式存儲系統(tǒng)

    結(jié)構(gòu)圖:


    WEB系統(tǒng)平臺中的存儲需求有下面兩個特點:

    1) 存儲量很大,經(jīng)常會達到單臺服務(wù)器無法提供的規(guī)模,比如相冊、視頻等應(yīng)用。因此需要專業(yè)的大規(guī)模存儲系統(tǒng)。

    2) 負載均衡cluster中的每個節(jié)點都有可能訪問任何一個數(shù)據(jù)對象,每個節(jié)點對數(shù)據(jù)的處理也能被其他節(jié)點共享,因此這些節(jié)點要操作的數(shù)據(jù)從邏輯上看只能是一個整體,不是各自獨立的數(shù)據(jù)資源。

    因此高性能的分布式存儲系統(tǒng)對于大型網(wǎng)站應(yīng)用來說是非常重要的一環(huán)。(這個地方需要加入對某個分布式存儲系統(tǒng)的簡單介紹。)

    分布式服務(wù)器管理系統(tǒng)

    結(jié)構(gòu)圖:


    隨著網(wǎng)站訪問流量的不斷增加,大多的網(wǎng)絡(luò)服務(wù)都是以負載均衡集群的方式對外提供服務(wù),隨之集群規(guī)模的擴大,原來基于單機的服務(wù)器管理模式已經(jīng)不能夠滿足我們的需求,新的需求必須能夠集中式的、分組的、批量的、自動化的對服務(wù)器進行管理,能夠批量化的執(zhí)行計劃任務(wù)。

    在分布式服務(wù)器管理系統(tǒng)軟件中有一些比較優(yōu)秀的軟件,其中比較理想的一個是 Cfengine。它可以對服務(wù)器進行分組,不同的分組可以分別定制系統(tǒng)配置文件、計劃任務(wù)等配置。它是基于C/S 結(jié)構(gòu)的,所有的服務(wù)器配置和管理腳本程序都保存在Cfengine Server上,而被管理的服務(wù)器運行著 Cfengine Client 程序,Cfengine Client通過SSL加密的連接定期的向服務(wù)器端發(fā)送請求以獲取最新的配置文件和管理命令、腳本程序、補丁安裝等任務(wù)。

    有了Cfengine 這種集中式的服務(wù)器管理工具,我們就可以高效的實現(xiàn)大規(guī)模的服務(wù)器集群管理,被管理服務(wù)器和 Cfengine Server 可以分布在任何位置,只要網(wǎng)絡(luò)可以連通就能實現(xiàn)快速自動化的管理。

    代碼發(fā)布系統(tǒng)

    結(jié)構(gòu)圖:

    隨著網(wǎng)站訪問流量的不斷增加,大多的網(wǎng)絡(luò)服務(wù)都是以負載均衡集群的方式對外提供服務(wù),隨之集群規(guī)模的擴大,為了滿足集群環(huán)境下程序代碼的批量分發(fā)和更新,我們還需要一個程序代碼發(fā)布系統(tǒng)。

    這個發(fā)布系統(tǒng)可以幫我們實現(xiàn)下面的目標:

    1) 生產(chǎn)環(huán)境的服務(wù)器以虛擬主機方式提供服務(wù),不需要開發(fā)人員介入維護和直接操作,提供發(fā)布系統(tǒng)可以實現(xiàn)不需要登陸服務(wù)器就能把程序分發(fā)到目標服務(wù)器。

    2) 我們要實現(xiàn)內(nèi)部開發(fā)、內(nèi)部測試、生產(chǎn)環(huán)境測試、生產(chǎn)環(huán)境發(fā)布的4個開發(fā)階段的管理,發(fā)布系統(tǒng)可以介入各個階段的代碼發(fā)布。

    3) 我們需要實現(xiàn)源代碼管理和版本控制,SVN可以實現(xiàn)該需求。

    這里面可以使用常用的工具Rsync,通過開發(fā)相應(yīng)的腳本工具實現(xiàn)服務(wù)器集群間代碼同步分發(fā)。

    posted @ 2010-08-04 20:24 筱 筱 閱讀(201) | 評論 (0)編輯 收藏

    管道:"|"
        將一個命令的輸出作為下一個命令的輸入
        例:ls | grep text            --這個命令將查找當前目錄下名稱中包含text的目錄或者文件
    xargs:
        將一個命令的輸入作為下一個命令的參數(shù)
        例:ls | xargs grep -i text        --這個命令將當前目下的所有文件作為參數(shù)傳遞給grep來查找文件中是否包含"text" 
             find . | xargs grep "user"    --查詢當前目錄及其子目錄下所有內(nèi)容中包含"user"的文件
    posted @ 2010-07-19 00:19 筱 筱 閱讀(376) | 評論 (0)編輯 收藏

    mysql:select * from 表名 order by rand() limit 10;
    sql server:select top 10 * from 表名 order by newid();
    oracle:select * from(select * from 表名 order by dbms_random.value) where rownum<=20;
    access:select top 10 * from 表名 order by rnd(ID)
    posted @ 2010-05-09 22:35 筱 筱 閱讀(698) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲精品午夜国产VA久久成人| 亚洲第一页在线观看| 大地资源在线资源免费观看| 精品日韩亚洲AV无码一区二区三区| 24小时日本在线www免费的| 国产精品免费大片一区二区| 亚洲欧洲国产精品你懂的| 国产男女猛烈无遮挡免费视频网站| a级黄色毛片免费播放视频| 国产成人亚洲综合网站不卡| 中文字幕亚洲无线码| 毛片基地免费观看| 麻豆精品成人免费国产片| 亚洲精品无码一区二区| 亚洲av无码一区二区三区乱子伦| 成人毛片免费在线观看| 午夜免费啪视频在线观看 | 麻豆国产精品免费视频| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 久久亚洲精品成人AV| 亚洲国产精品一区二区第四页| 69天堂人成无码麻豆免费视频| 一区二区三区在线免费观看视频 | 九九久久精品国产免费看小说 | 色婷五月综激情亚洲综合| 伊人婷婷综合缴情亚洲五月| 午夜私人影院免费体验区| 久久久久久成人毛片免费看| 免费大片av手机看片| 亚洲日韩精品无码专区加勒比| 亚洲国产第一站精品蜜芽| 亚洲国产精品视频| 日韩人妻无码免费视频一区二区三区| 99re6热视频精品免费观看| 亚洲免费在线观看| 免费无码专区毛片高潮喷水| 亚洲第一第二第三第四第五第六| 亚洲日产2021三区| 亚洲AV乱码久久精品蜜桃| 亚洲色欲一区二区三区在线观看| 国产女高清在线看免费观看|