vickzhu

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

          2009年12月31日 #

          ##通用查詢?nèi)罩荆河涗浗⒌目蛻舳诉B接和執(zhí)行的語句
          ##慢查詢?nèi)罩荆河涗浰袌?zhí)行時(shí)間超過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;
          ##查看當(dāng)前慢查詢?nèi)罩据敵龅母袷?,可以是FILE(存儲(chǔ)在數(shù)數(shù)據(jù)庫的數(shù)據(jù)文件中的hostname.log),也可以是TABLE(存儲(chǔ)在數(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,默認(rèn)為10
          SET GLOBAL long_query_time=1;
          ##設(shè)置慢查詢閾值為10,默認(rèn)為10
          SET GLOBAL long_query_time=10;
          ##查看慢查詢的閾值
          SHOW GLOBAL VARIABLES LIKE '%long_query_time%';
          ##查看有多少慢查詢
          SHOW GLOBAL STATUS LIKE '%Slow_queries%';
          ##睡眠11秒,測(cè)試慢查詢
          ##select SLEEP(11);
          posted @ 2018-10-09 16:59 筱 筱 閱讀(184) | 評(píng)論 (0)編輯 收藏

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

          1、達(dá)到默認(rèn)最大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 筱 筱 閱讀(5907) | 評(píng)論 (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 筱 筱 閱讀(6459) | 評(píng)論 (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 筱 筱 閱讀(7036) | 評(píng)論 (0)編輯 收藏

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

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

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

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

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

          wfentry表中的state字段來自于接口WorkflowEntry,有如下幾個(gè)值:
              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接口相當(dāng)于我們service層的接口,而WorkflowStore接口相當(dāng)于我們DAO層的接口,
          我們知道osworkflow提供的Workflow實(shí)現(xiàn)(如:BasicWorkflow)有時(shí)并不能滿足業(yè)務(wù)的需要,因此我們可以實(shí)現(xiàn)自己的Workflow,具體可以參照BasicWorkflow 
          繼承AbstractWorkflow,接著加入自己想要的方法。同理,我們可以通過繼承相應(yīng)的WorkflowStore(如:HibernateWorkflowStore)來編寫自己的方法
          posted @ 2012-06-26 14:49 筱 筱 閱讀(5731) | 評(píng)論 (0)編輯 收藏

          1、日期格式化:
              DateFormat
              SimplateDateFormat

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

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

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

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

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

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

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

          好了,我們來看看剛才加的文件是否為二進(jìn)制:
          進(jì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

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

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

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

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

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

          在頁面中顯示某字段時(shí),字段值過長(zhǎng)會(huì)導(dǎo)致頁面樣式錯(cuò)亂,這時(shí)候我們需要對(duì)值進(jìn)行截取,當(dāng)截取值時(shí)會(huì)碰到以下問題:
          1、如果按字符截取會(huì)導(dǎo)致中英文顯示的長(zhǎng)度不一
          2、如果按字節(jié)截取可能會(huì)導(dǎo)致最后一個(gè)中文截成兩部分
          以下代碼是在網(wǎng)上獲取并經(jīng)過改造而成,能夠很好的解決上面兩個(gè)問題
              /**
               * 根據(jù)指定字節(jié)數(shù)截取字符串,當(dāng)指定處為中文第一個(gè)字節(jié)時(shí)少截取一個(gè)字符,當(dāng)長(zhǎng)度大于指定截取長(zhǎng)度時(shí),截取后在字符串末尾追加指定字符串<br/>
               * 這里添加了字符串的編碼,因?yàn)轫撁娴木幋a不同,字符串所占字節(jié)也不同
               *
               * @param str 待截取字符串,如果為null或者"",則立即返回str
               * @param length 需要截取的長(zhǎng)度
               * @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 筱 筱 閱讀(352) | 評(píng)論 (0)編輯 收藏

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

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

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

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

          二、java.lang.OutOfMemoryError: Java heap space
          Heap size 設(shè)置
          JVM堆 的設(shè)置是指java程序運(yùn)行過程中JVM可以調(diào)配使用的內(nèi)存空間的設(shè)置.JVM在啟動(dòng)的時(shí)候會(huì)自動(dòng)設(shè)置Heap size的值,
          其初始空間(即 -Xms)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4??梢岳肑VM提供的-Xmn -Xms -Xmx等選項(xiàng)可
          進(jìn)行設(shè) 置。Heap size 的大小是Young Generation 和Tenured Generaion 之和(新域和舊域之和)。
          提示:在JVM中如果98% 的時(shí)間是用于GC且可用的Heap size 不足2%的時(shí)候?qū)伋龃水惓P畔ⅰ?br /> 提示:Heap Size 最大不要超過可用物理內(nèi)存的80%,一般的要將-Xms和-Xmx選項(xiàng)設(shè)置為相同,而-Xmn為1/4的-Xmx值。
          解決方法:手動(dòng)設(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 筱 筱 閱讀(243) | 評(píng)論 (0)編輯 收藏

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

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

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

          l         Web前端系統(tǒng)

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

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

          l         緩存系統(tǒng)

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

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

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

          Web前端系統(tǒng)

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

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

          負(fù)載均衡系統(tǒng)


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

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

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


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

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

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

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

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

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

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

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

          緩存系統(tǒng)


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

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

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

          3、Memcached服務(wù)器有多臺(tái),避免單點(diǎn)故障,提供高可靠性和可擴(kuò)展性,提高性能。

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

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


          WEB系統(tǒng)平臺(tái)中的存儲(chǔ)需求有下面兩個(gè)特點(diǎn):

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

          樣式代碼如下:
          html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
          需要最新網(wǎng)頁標(biāo)準(zhǔn)支持:
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          Flash要在object標(biāo)簽中加入如下代碼:
          <param value="false" name="menu"/>
          <param value="opaque" name="wmode"/>
          posted @ 2010-04-21 12:19 筱 筱 閱讀(237) | 評(píng)論 (0)編輯 收藏

          1、下載wamp5,安裝wamp5,如需更改端口請(qǐng)修改Apache配置文件,更改端口(如:8888)后還需要更改wamp根目錄wampmanager.ini文件中的以下地方
              Type: item; Caption: "Localhost"; Action: run; FileName: "C:\WINDOWS\explorer.exe"; Parameters: "http://localhost:8888/"; Glyph: 5
              Type: item; Caption: "phpMyAdmin"; Action: run; FileName: "C:\WINDOWS\explorer.exe"; Parameters: "http://localhost:8888/phpmyadmin/"; Glyph: 5
              Type: item; Caption: "SQLiteManager"; Action: run; FileName: "C:\WINDOWS\explorer.exe"; Parameters: "http://localhost:8888/sqlitemanager/"; Glyph: 5
          2、安裝后訪問首頁http://localhost:8888,點(diǎn)擊phpinfo()查看php信息,如果只顯示如下信息:
              This program makes use of the Zend Scripting Language Engine:
              Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
              查看php目錄下的php.ini文件,沒有[Zend]塊,表明ZendOptimizer沒有安裝
          3、下載ZendOptimizer,安裝路徑選擇D:\Program Files\Zend,選擇apache2.x及php.ini的位置,安裝完成后php.ini最后會(huì)添加以下內(nèi)容:
              [Zend]
              zend_extension_manager.optimizer_ts="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
              zend_extension_ts="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
          4、訪問http://loalhost:8888/ppframe進(jìn)行ppframe的安裝,安裝成功后登陸后臺(tái),如果沒有安裝ZendOptimizer,左側(cè)的exam是打不開的,但是passport可以打開。

          posted @ 2010-04-19 15:00 筱 筱 閱讀(486) | 評(píng)論 (0)編輯 收藏

          1、如果頁面有<base/>標(biāo)簽的則要在js引入后再添加<base target="_self" />;

          2、在<script/>中添加屬性defer="defer";

          posted @ 2010-03-31 17:28 筱 筱 閱讀(419) | 評(píng)論 (0)編輯 收藏

          比如java向txt文件中寫入新的一行時(shí),java獲得文本輸入框中的新行時(shí)等
          Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“\r”;
          Windows系統(tǒng)里面,每行結(jié)尾是“<換行><回車>”,即“\r\n”;
          Mac系統(tǒng)里,每行結(jié)尾是“<回車>”,即“\n”。
          一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;
          而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)^M符號(hào)。

          posted @ 2010-03-31 13:37 筱 筱 閱讀(2375) | 評(píng)論 (2)編輯 收藏

          如果已經(jīng)配置mysql的環(huán)境變量,請(qǐng)直接執(zhí)行:mysql -u 輸入用戶名 -p 回車 之后輸入密碼
          如果未配置環(huán)境變量請(qǐng)先進(jìn)入mysql的bin目錄下
          執(zhí)行如下語句導(dǎo)入:source 輸入sql文件的位置
          執(zhí)行如下語句導(dǎo)出:mysqldump -u輸入用戶名 -p輸入密碼 數(shù)據(jù)庫名 表名 >文件名.sql

          posted @ 2010-01-19 11:26 筱 筱 閱讀(286) | 評(píng)論 (0)編輯 收藏

          服務(wù)端:http://labs.northscale.com/memcached-packages/
          客戶端:http://code.google.com/p/memcached/wiki/Clients/
          posted @ 2009-12-31 10:57 筱 筱 閱讀(431) | 評(píng)論 (1)編輯 收藏

          主站蜘蛛池模板: 郓城县| 怀柔区| 白山市| 将乐县| 禄丰县| 龙游县| 长宁县| 喀喇沁旗| 高州市| 永靖县| 宝鸡市| 贵南县| 呼和浩特市| 精河县| 井陉县| 航空| 博野县| 博湖县| 麻栗坡县| 托克逊县| 昌平区| 察隅县| 遂宁市| 伊川县| 定远县| 甘肃省| 绥滨县| 拜城县| 固始县| 海晏县| 鹿邑县| 灵武市| 宜兴市| 丹寨县| 蛟河市| 四川省| 安新县| 图们市| 丹江口市| 邮箱| 平山县|