于吉吉的技術博客

          建造高性能門戶網(wǎng)

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

          2010年10月10日 #

          posted @ 2014-03-04 10:49 陳于喆 閱讀(451) | 評論 (0)編輯 收藏

          posted @ 2014-02-23 12:54 陳于喆 閱讀(420) | 評論 (0)編輯 收藏

               摘要: 最近接手項目從cocos2dx 2.0 升級為 3.0 ,至于為什么要升級我也弄不清楚,只感覺3.0是要擺脫cocos2d-iphone的身影,這是要作死的態(tài)度嗎,沒時間去了解3.0的核心發(fā)生了神馬變化,只為了從cocos2dx2.0經(jīng)常適應到3.0做了一些紀錄,以便查閱和方便正在從2.0到3.0的朋友。  閱讀全文
          posted @ 2013-12-27 23:29 陳于喆 閱讀(18060) | 評論 (5)編輯 收藏

          posted @ 2013-07-05 17:18 陳于喆 閱讀(4529) | 評論 (6)編輯 收藏

          posted @ 2012-03-19 16:33 陳于喆 閱讀(4383) | 評論 (3)編輯 收藏

               摘要: 其實為什么javascript的定時器會出現(xiàn)所謂的不可靠或偏差的情況,這是可以理解的,最主要的問題是它們并不是所謂的線程,其實
          javascript是運行于單線程的環(huán)境中,而定時器只是計劃代碼在未來某個執(zhí)行的時間,執(zhí)行的時間點是不能被保證的,因為在頁面的生命周期中,不同時間可能存在其他代碼,或各個瀏覽器的內(nèi)核控制住javascript進程。  閱讀全文
          posted @ 2012-01-10 15:15 陳于喆 閱讀(3548) | 評論 (6)編輯 收藏

          posted @ 2011-12-06 16:22 陳于喆 閱讀(4993) | 評論 (7)編輯 收藏

          posted @ 2011-08-21 15:55 陳于喆 閱讀(6429) | 評論 (0)編輯 收藏

          posted @ 2011-08-15 16:51 陳于喆 閱讀(6338) | 評論 (13)編輯 收藏

               摘要: Starting and Stopping Mongo
          Security and Authentication
          Monitoring and Diagnostics
          Backups
            閱讀全文
          posted @ 2011-07-30 18:23 陳于喆 閱讀(20572) | 評論 (2)編輯 收藏

          posted @ 2011-06-15 15:07 陳于喆 閱讀(895) | 評論 (0)編輯 收藏

               摘要: objectid是一種輕量型的,不同的機器都能用全局唯一的同種方法輕量的生成它,而不是采用傳統(tǒng)的自增的主鍵策略,因為在多臺服務器上同步自動增加主鍵既費力又費時,不得不佩服,mongodb從開始設計就被定義為分布式數(shù)據(jù)庫。
          下面深入一點來翻翻這個Objectid的底細,在mongodb集合中的每個document中都必須有一個"_id"建,這個鍵的值可以是任何類型的,在默認的情況下是個Objectid對象。
          當我們讓一個collection中插入一條不帶_id的記錄,系統(tǒng)會自動地生成一個_id的key  閱讀全文
          posted @ 2011-06-12 18:30 陳于喆 閱讀(15261) | 評論 (8)編輯 收藏

          posted @ 2011-06-02 16:11 陳于喆 閱讀(972) | 評論 (0)編輯 收藏

               摘要: google map測距的實現(xiàn)和分析
          不斷有傳聞google map在今年的7月1號之后在大陸停止運營,具體原因是因為天朝的牌照問題,這個就不多講了,可以發(fā)現(xiàn)現(xiàn)在搜房網(wǎng)的地圖,和安居客等的地圖紛紛都撤下 google map,而重新選擇了mapabc或baidu,當然網(wǎng)易房產(chǎn)地圖也不例外,現(xiàn)在也在使用mapabc作為網(wǎng)易房產(chǎn)地圖的開發(fā),預計將在6月底前上線,到 時再跟大家分享一下mapabc的一些開發(fā)實踐。
          還是說回google map的開發(fā),自從上次建了個qq群就有不少人在問測距怎么實現(xiàn),當然很多人想的是拿來主義的,當時是拿http://xf.house.163.com /gz/map/000B.html的例子出來,但確實頁面上進行了封裝也寫得比較亂,所以還是比較難以抽離,先給個簡單實現(xiàn)的例子:  閱讀全文
          posted @ 2011-06-02 14:01 陳于喆 閱讀(3970) | 評論 (1)編輯 收藏

               摘要: 有朋友去一家大型的互聯(lián)網(wǎng)公司參加了java程序員的筆試,抄下了一些筆試題,可能有的抄的并不全,試了解答一下,有些還真的答不出來

          1.cookie和session的作用以及他們的應用場合
          2.怎樣讓jvm加載一個Class的同時執(zhí)行一段代碼
          3.post和get區(qū)別
          4.事務的屬性有哪些?寫出spring或jdbc管理事務的例子
          5.實現(xiàn)一個高并發(fā)、高性能的hashmap。寫出偽代碼
          6.解析一段xml,拼接成一個url。  閱讀全文
          posted @ 2011-04-21 17:23 陳于喆 閱讀(3772) | 評論 (9)編輯 收藏

               摘要: 好吧,這個錯誤浪費了我今天幾個小時的時間,必須把它記錄下來。
          問題是這樣的,在啟動更新了portmap,exportfs,一些沒問題后,在做/etc/init.d/nfs-kernel-server restart 出現(xiàn)

          /etc/init.d/nfs-kernel-server start
          Exporting directories for NFS kernel daemonexportfs: /etc/exports [1]:
          Neither 'subtree_check' or 'no_subtree_check' specified for export
          "foobar".
          Assuming default behaviour ('no_subtree_check').
          NOTE: this default has changed since nfs-utils version 1.0.x

          .
          Starting NFS kernel daemon: nfsd
          Not st  閱讀全文
          posted @ 2011-04-06 17:13 陳于喆 閱讀(1931) | 評論 (1)編輯 收藏

               摘要: NFS服務器端
          apt-get install nfs-kernel-server nfs-common portmap

          vi /etc/hosts.allow
          portmap: 192.168.0.
          lockd: 192.168.0.
          rquotad: 192.168.0.
          mountd: 192.168.0.
          statd: 192.168.0.

          vi /etc/hosts.deny
          portmap:ALL
          lockd:ALL
          mountd:ALL
          rquotad:ALL
          statd:ALL

          vi /etc/default/portmap
          將 -i 127.0.0.1 注釋掉  閱讀全文
          posted @ 2011-04-06 17:09 陳于喆 閱讀(1461) | 評論 (0)編輯 收藏

               摘要: google Map的交互基本都是事件驅(qū)動的,這表示js是通過生成時間來響應交互的,并且處于監(jiān)聽我們設定的事件,每個 Google Maps API 對象都可導出大量已命名的事件。如果程序想要實現(xiàn)某些事件,則會為這些事件注冊 Javascript 事件偵聽器,并會在通過在 google.maps.event 命名空間中注冊 addListener() 事件處理程序接收這些事件時執(zhí)行相應的代碼。

          初步的事件響應

          google map中的所有對象都可以對用戶事件監(jiān)聽并作出響應,用戶的事件可以包括鼠標或鍵盤,對象可以監(jiān)聽以下這幾種事件:
          'click','dblclick','mouseup','mousedown','mouseover','mouseout'
          這些事件看上去很像標準的DOM事件,但這些時間可以在不同的瀏覽器實現(xiàn)不同的DOM事件模型。  閱讀全文
          posted @ 2011-03-30 16:58 陳于喆 閱讀(26597) | 評論 (0)編輯 收藏

               摘要: 在微博看到介紹的一款linux系統(tǒng)信息神器,dstat,收藏一下

          dstat可以直接可直接替換vmstat, iostat, netstat ,nfsstat, ifstat等系統(tǒng)工具,監(jiān)控cpu、disk 、mem、load、interrupt、net、proc、CS....

          安裝
          wget http://rpmforge.sw.be/redhat/7.3/en/i386/rpmforge/RPMS/dstat-0.6.9-1.rh7.rf.noarch.rpm
          rpm -ivh dstat-0.6.9-1.rh7.rf.noarch.rpm
          or
          apt-get install dstat
          yum install dstat  閱讀全文
          posted @ 2011-03-24 17:15 陳于喆 閱讀(2268) | 評論 (3)編輯 收藏

               摘要: 本來是想將房產(chǎn)地圖google map的應用記錄一個系列,但繼1)記錄完之后總找不到時間繼續(xù)記錄下去,1)中主要解決了Google Maps JavaScript API V3 與 Google Local Search API兩者由于版本問題帶來的一系列麻煩,思路是使用一個iframe作為兼容的跳板,子頁面應用Local Search API獲得查詢的result后返回給父頁面,下面再記錄一些地圖坐標的定位和一些UI的組成。

          可參考 http://xf.house.163.com/gz/map/00Xa.html  閱讀全文
          posted @ 2011-03-05 16:02 陳于喆 閱讀(4421) | 評論 (2)編輯 收藏

               摘要: 一直以來似乎都有一個錯覺,認為map跟其他的集合類一樣繼承自Collection,其實不然,Map和Collection在結(jié)構(gòu)層次上是沒有任何關系的,通過查看源碼可以發(fā)現(xiàn)map所有操作都是基于key-value對,而不是單獨的元素。

          下面以HashMap為例子,深入對Map的實現(xiàn)機制進行了解,在這個過程中,請打開jdk源碼。

          Hash算法

          HashMap使用Hash算法,所以在解剖HashMap之間,需要先簡單的了解Hash算法,Hash算法一般也成為散列算法,通過散列算法將任意的值轉(zhuǎn)化成固定的長度輸出,該輸出就是散列值,這是一種壓縮映射,也就是,散列值的空間遠遠小于輸入的值空間。
          簡單的說,hash算法的意義在于提供了一種快速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實值之間的對應關系,(每一個真實值只能有一個鍵值,但是一個鍵值可以對應多個真實值),這樣可以快速在數(shù)組等里面存取數(shù)據(jù)。

          下面我們建立一個HashMap,然后往里面放入12對key-value,這個HashMap的默認數(shù)組長度為16,我們的key  閱讀全文
          posted @ 2011-02-15 19:18 陳于喆 閱讀(10178) | 評論 (6)編輯 收藏

               摘要: 以前的房產(chǎn)地圖一直都是使用有道地圖,雖然有道地圖是很好,但是為了更好,還是決定使用google地圖來重新開發(fā)^_^,下面是一個開發(fā)完畢的簡單應用http://xf.house.163.com/gz/map/000B.html

          1)整合Google Maps JavaScript API V3 與 Google Local Search API

          Google Maps JavaScript API V3
          地址 http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/

          Google Maps JavaScript API V3 文檔讀起來真的是很清晰,各種demo也很齊全,并且論壇的擁有巨大的論壇支持,對比了一下Google Maps JavaScript API V3 和 V2 的版本,雖然第3版的 Google Maps API 看上去跟第2版挺相識,但在內(nèi)在機制上有了較大的變化,尤其在對移動瀏覽器的支持上,專門針對iphone和android  閱讀全文
          posted @ 2011-02-12 15:57 陳于喆 閱讀(4969) | 評論 (6)編輯 收藏

               摘要: 對于進程管理工具平時大多用的是ps,kill,top,sleep等等這些命令,平時linux的一些指令我都會做一些記錄,本著好記性不如爛博客的精神,也把進程管理的命令做一點系統(tǒng)性的記錄,參考資料基本是鳥哥還有網(wǎng)上的一些文章。

          ps
          ps命令主要是查看系統(tǒng)進程的狀態(tài),平時最常用的命令是ps aux,然后再使用管道導向到grep查找特定的進程,然后進此特定進程進行操作。
          要對進程進行操作必須先了解到當前進程的情況,ps命令體現(xiàn)了現(xiàn)實當前運行進程的快照,ps和top和相似,但ps提供了更多的信息,可以確定哪些進程正在運行,哪些進程被掛起,運行了多長時間,以及進行使用的資源和進程的優(yōu)先級,這些信息對我們都有很重要的作用,當我們使用ps aux可以獲得終端所有用戶的有關進程信息。  閱讀全文
          posted @ 2011-01-21 17:56 陳于喆 閱讀(1101) | 評論 (0)編輯 收藏

          posted @ 2011-01-21 12:34 陳于喆 閱讀(598) | 評論 (0)編輯 收藏

               摘要: 問題是這樣的,有個腳本需要10秒鐘執(zhí)行一次,腳本具體功能就不細說,定時任務自然選用crontab,但是crontab最小的執(zhí)行時間為分鐘,最后決定選用死循環(huán)進行實現(xiàn)。

          腳本
          vi hello.sh
          #!/bin/sh
          while :
          do
          echo `date` >> /home/chenyz/1 //這里是任務的實現(xiàn)
          sleep 10
          done

          這里的程序運行時間間隔是10s,小心咯,如果沒有加sleep 10,你的機器很快就會耗盡資源,負載會狂飆。

          接著需要把腳本用后臺守護進程來運行,避免用戶退出而導致腳本失效  閱讀全文
          posted @ 2011-01-19 17:47 陳于喆 閱讀(2558) | 評論 (0)編輯 收藏

               摘要: 對于用戶管理工具平時大多用的是groupadd,useradd,usermod等等這些命令,平時linux的一些指令我都會做一些記錄,本著好記性不如爛博客的精神,也把用戶管理的命令做一點系統(tǒng)性的記錄,參考資料基本是鳥哥還有網(wǎng)上的一些文章。

          用戶組的管理
          linux可以對一個用戶組中的所有用戶進行集中的管理,用戶組的管理包括用戶組添加,刪除修改,實際上這些操作就是對/etc/group文件作出修改。

          groupadd 新增一個用戶組
          groupadd [-g gid [-o]] [-r] [-f] group
          -g 其中gid是指定新用戶組的標識號,除非配合使用-o參數(shù),不然該值必須是唯一的
          -o 標識新用戶組gid可以和系統(tǒng)中原有的用戶組的gid值相同
          實例:
          groupadd chenyuzhe1
          groupadd -g 789 chenyuzhe2

          groupdel 刪除用戶組
          實例:
          groupdel chenyuzhe1  閱讀全文
          posted @ 2011-01-19 15:36 陳于喆 閱讀(1460) | 評論 (0)編輯 收藏

               摘要: 對于磁盤管理工具平時大多用的是df,du這些命令,平時linux的一些指令我都會做一些記錄,本著好記性不如爛博客的精神,先把磁盤管理的命令做一點系統(tǒng)性的記錄。

          du
          du的英文為:disk usage,含義是磁盤空間使用情況,功能是逐級進入指定目錄的每一個子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊的情況,如果沒有指定目錄,則對當前的目錄進行統(tǒng)計。
          du的命令各個選項含義如下:

          a:顯示全部目錄和其次目錄下的每個檔案所占的磁盤空間
          s:只顯示各檔案大小的總合
          b:大小用bytes來表示
          x:跳過在不同文件系統(tǒng)上的目錄不予統(tǒng)計
          a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數(shù)據(jù)塊數(shù)  閱讀全文
          posted @ 2011-01-19 13:08 陳于喆 閱讀(511) | 評論 (0)編輯 收藏

               摘要: List在數(shù)據(jù)結(jié)構(gòu)中表現(xiàn)為是線性表的方式,其元素以線性方式存儲,集合中允許存放重復的對象,List接口主要的實現(xiàn)類有
          ArrayList
          ArrayList 其實就是一組長度可變的數(shù)組,當實例化了一個ArrayList,該數(shù)據(jù)也被實例化了,當向集合中添加對象時,數(shù)組的大小也隨著改變,這樣它所帶來的有優(yōu)點是快速的隨機訪問,即使訪問每個元素所帶來的性能問題也是很小的,但缺點就是想其中添加或刪除對象速度慢,當你創(chuàng)建的數(shù)組是不確定其容量,所以當我們改變這個數(shù)組時就必須在內(nèi)存中做很多的處理,如你想要數(shù)組中任意兩個元素中間添加對象,那么在內(nèi)存中數(shù)組要移動所有后面的對象。

          LinkedList
          LinkedList 是通過節(jié)點的連接實現(xiàn)鏈表的數(shù)據(jù)結(jié)構(gòu),向linkedList中插入或刪除元素的速度是特別快,而隨機訪問的速度相對較慢,這個是由于鏈表本身的性質(zhì)造成的,在鏈表中,每個節(jié)點都包含了前一個節(jié)點的引用,后一個節(jié)點的引用和節(jié)點存儲值,當一個新節(jié)點插入式,只需要修改其中相關的前后關系節(jié)點引用即可,刪除節(jié)點也是一樣。操作對象只需要改變節(jié)點的鏈接,新節(jié)點可以存放在  閱讀全文
          posted @ 2011-01-16 17:36 陳于喆 閱讀(11412) | 評論 (1)編輯 收藏

               摘要: 我們都知道Set是一種最簡單的集合,對象的排序無特定的規(guī)則,集合里面存放的是對象的引用,所以沒有重復的對象,在上面的代碼中,程序創(chuàng)建了a、b、 c、d、e五個變量,其中a和c,b和e所引用的字符串是一致的,然后向set添加了這5個變量。打印出來的size()只有3個,實際上向集合加入的只有3個對象,在執(zhí)行Set的add()方法時已經(jīng)進行了判斷這個對象是否存在于集合,如果對象已經(jīng)存在則不繼續(xù)執(zhí)行。
          Set的接口有兩個實現(xiàn)類,HashSet和TreeSet,HashSet是按照哈希算法來進行存取集合中的對象,存取速度比較快,TreeSet類顯示了SortedSet接口,具有排序功能

          HashSet
          HashSet是按照哈希算法來存取集合中的對象,具有很好的存取和查找性能,當向集合中加入一個對象時,HashSet會調(diào)用對象的hashCode()方法來獲取哈希碼,然后根據(jù)這個哈希嗎來計算對象在集合中的存放位置。
          在Object類中定義了hashCode()和equal(),equal()是按照內(nèi)存地址比較對象是否相同,如果 object1.equal(  閱讀全文
          posted @ 2011-01-06 18:07 陳于喆 閱讀(8613) | 評論 (0)編輯 收藏

          posted @ 2011-01-04 14:10 陳于喆 閱讀(71445) | 評論 (6)編輯 收藏

               摘要: The minimum requirement for a POM are the following:

          project root
          modelVersion - should be set to 4.0.0
          groupId - the id of the project's group.
          artifactId - the id of the artifact (project)
          version - the version of the artifact under the specified group

          Here's an example:  閱讀全文
          posted @ 2010-12-29 17:50 陳于喆 閱讀(332) | 評論 (0)編輯 收藏

               摘要: 由于歷史原因,幾個項目都選用hessian作為web service的實現(xiàn)方式,hessian的確是非常輕量級,基于http協(xié)議進行傳輸,通過自定義的串行化機制將請求信息進行序列化,以二進制傳輸節(jié)省了不少的開銷,速度跟socket差不多.客戶端和服務器發(fā)起和接收請求都是通過spring提供的hessian api進行請求和接收,但是在服務端中并沒有記錄和控制遠端ip地址和主機的信息,所以需要對源碼進行一些重寫

          對org.springframework.remoting.caucho.HessianServiceExporter進行重寫

          /**
          * 重寫HessianServiceExporter.handleRequest(),攔截獲取遠端調(diào)用信息
          * @author chenyz
          *
          */
          public class HouseHessianServiceExporter extends HessianServiceExporter {

          private static S  閱讀全文
          posted @ 2010-12-21 16:05 陳于喆 閱讀(3030) | 評論 (0)編輯 收藏

               摘要: 目前幾套系統(tǒng)中主要使用的hessian進行遠程調(diào)用webservice服務的有hessian的 HessianProxyFactory(com.caucho.hessian.client.HessianProxyFactory)和 spring的 HessianProxyFactoryBean(org.springframework.remoting.caucho.HessianProxyFactoryBean).

          1.HessianProxyFactory
          查看HessianProxyFactory源碼后發(fā)現(xiàn),hessian在創(chuàng)建http請求連接webservice服務并沒有對連接超時進行相關的參數(shù)設置,所以當網(wǎng)絡出現(xiàn)問題就會造成整個hessian處理的阻塞,進而阻塞整個線程后續(xù)的處理
          以下是HessianProxyFactory對連接處理的源碼

          protected URLConnection openConnection(URL url)
          throws IOException
          {
          URL  閱讀全文
          posted @ 2010-12-16 14:46 陳于喆 閱讀(12039) | 評論 (11)編輯 收藏

               摘要: 對很久以前的一個bug進行分析和總結(jié)

          function parsePost(data, action) {
          try {
          var postData = eval("(" + data + ")");

          // TO DO1
          } catch (e) {

          // TO DO2
          }
          }


          這是一段頁面的老代碼,data是數(shù)據(jù)庫body字段,既是用戶錄入并取出的數(shù)據(jù),由于業(yè)務的關系,data是以json格式保存的,為了使數(shù)據(jù)能實現(xiàn)兼容,這里使用try...catch...方式處理,如果變量data能被轉(zhuǎn)換成對象,則執(zhí)行TO DO1,否則執(zhí)行TO DO2.

          我們知道eval的作用很簡單,就是把一段字符串傳遞給js解析器,由javascript解析器將這段字符串解釋成為  閱讀全文
          posted @ 2010-12-15 11:31 陳于喆 閱讀(4364) | 評論 (2)編輯 收藏

               摘要: 上次因工作的需求對一臺apache的log做了一次整體的分析,所以順便也對apache的日志分析做下簡單的介紹,主要參考apache官網(wǎng)的Log Files,手冊參照 http://httpd.apache.org/docs/2.2/logs.html

          一.日志分析
          如果apache的安裝時采用默認的配置,那么在/logs目錄下就會生成兩個文件,分別是access_log和error_log
          1.access_log
          access_log為訪問日志,記錄所有對apache服務器進行請求的訪問,它的位置和內(nèi)容由CustomLog指令控制,LogFormat指令可以用來簡化該日志的內(nèi)容和格式
          例如,我的其中一臺服務器配置如下

          CustomLog "| /usr/sbin/rotatelogs /var/log/apache2/%Y_%m_%d_other_vhosts_access.log 86400 480" vhost_combined

          -rw-r--r-- 1 root root 22310750   閱讀全文
          posted @ 2010-12-10 17:52 陳于喆 閱讀(12486) | 評論 (3)編輯 收藏

               摘要: 下載地址 http://awstats.sourceforge.net
          下載最新版本

          安裝
          cd /home/download
          wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz
          tar zxf awstats-7.0.tar.gz
          mv awstats-7.0 awstats
          perl awstats_configure.pl

          在[y/n]選擇時,輸入y
          接著輸入你要分析的域名,輸入tech163
          一路Enter

          配置
          vi /etc/awstats/awstats.tech163.com  閱讀全文
          posted @ 2010-12-10 17:28 陳于喆 閱讀(1235) | 評論 (0)編輯 收藏

               摘要: 下面一個伴隨了好幾個工程的時間操作的工具類,提供了一些常用的時間操作和計算的方法,每段時間都會進行一次整理,希望能去冗余和得到好的擴展

          package com.***.product.util;

          import java.text.ParsePosition;
          import java.text.SimpleDateFormat;
          import java.util.Calendar;
          import java.util.Date;
          import java.util.GregorianCalendar;
          import java.util.regex.Pattern;

          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;


          public class DateUtil {
          protected static Log logger = LogFa  閱讀全文
          posted @ 2010-12-09 18:37 陳于喆 閱讀(457) | 評論 (0)編輯 收藏

               摘要: 大名鼎鼎的分布式緩存系統(tǒng)memcached,在開源社區(qū)中可謂是無人不知無人不曉,memcached支持分布式的橫向擴展,但memcached的服務端卻是單實例,并無"分布式"的功能,所謂的分布式只是客戶端在存儲的主鍵做分布的存儲;還有memcached組件緩存對象,如果組件無進行序列化必定無法正確取得數(shù)據(jù);如何使用memcached的java組件來監(jiān)控memcached的運行狀態(tài);以上等等的問題是我在日常的工作中碰到并解決的,拿出來跟大家做個分享^_^

          對象的序列化
          首先memcached是獨立的服務器組件,獨立于應用系統(tǒng),從客戶端保存和讀取對象到memcached是必須通過網(wǎng)絡傳輸,因為網(wǎng)絡傳輸都是二進制的數(shù)據(jù),所以所有的對象都必須經(jīng)過序列化,否則無法存儲到memcahced的服務器端.
          正如我們以往在集群中應用的序列化一樣,memcached的序列化的性能也是往往讓大家頭疼,如果我們對我們的domain類進行對象的序列化,第一次序列化時間會比較長,但后續(xù)會優(yōu)化,也就是說序列化最大的消耗不是對象的序列化,而是類的序列化,如果存儲的只是一個String  閱讀全文
          posted @ 2010-12-08 15:00 陳于喆 閱讀(5620) | 評論 (4)編輯 收藏

               摘要: 很久以前就見過這本1000頁的書<代碼大全>,覺得應該是說些寫代碼的東西,沒怎么又興趣去讀它,一次偶然的機會,發(fā)現(xiàn)自己是誤解了它,<代碼大全>覺得應該叫軟件百科好像更合適一點,因為它里面涵蓋了架構(gòu),分析,設計,編程,測試,重構(gòu),面向?qū)ο?調(diào)試,規(guī)范,管理,軟件質(zhì)量控制,協(xié)作,優(yōu)化,開發(fā)工具,注釋,甚至個性,開發(fā)藝術等等等,讓人感覺就是一本軟件百科全書.

          書讀的不多,不過剛開始讀了100多頁有一點感悟,所以做了一點記錄,叫讀<代碼大全>的一點記錄之1.

          利用隱喻
          隱喻通過把軟件開發(fā)與你所熟知的事情聯(lián)系在一起,從而使你對其更有深刻的理解,正是因為如此在計算機中的發(fā)展不過僅有數(shù)十年的歷史,卻擁有著所有科學最為豐富多彩的語言

          蓋房子的隱喻
          狗屋
          霹靂啪啦,木材加鐵釘,犯錯了怎么辦?無所謂,拆了再來過  閱讀全文
          posted @ 2010-12-07 17:59 陳于喆 閱讀(1254) | 評論 (0)編輯 收藏

               摘要: memcached需要依賴到以下的一系列包
          gcc
          libevent
          glibc-devel

          下載
          cd /home/download
          wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
          wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz

          安裝
          tar -zxvf libevent-1.4.13-stable.tar.gz
          cd libevent-1.4.13-stable
          ./configure --prefix=/usr/local/libevent
          make && make install

          tar -zxvf memcached-1.4.0.tar.gz  閱讀全文
          posted @ 2010-12-07 16:34 陳于喆 閱讀(349) | 評論 (0)編輯 收藏

               摘要: 上個月參加的網(wǎng)易游戲部QA組的黑盒測試培訓,覺得挺有意思的,不過最讓我感興趣的是,能和真正專業(yè)的測試人員做了一點討論,發(fā)現(xiàn)站在開發(fā)人員的角度看待測試和站在測試人員看待測試時完全不同的一種東西.

          程序員和測試人員的心理差別
          程序員和測試人員的心理差別可以簡單的歸納為以下幾種

          成功 / 不成功
          什么才是一次成功的測試,大多數(shù)的開發(fā)人員對自己的程序測試完沒發(fā)現(xiàn)錯誤,就會說"這是一個成功的測試",如果發(fā)現(xiàn)某些新的錯誤則稱"這是不成功的測試";而測試人員剛好相反,當然這也是因為雙方的職責不同而引起的

          維護 / 破壞,施虐
          開發(fā)人員對測試往往是一種維護性的測試,目標在于證明自己開發(fā)的程序沒有錯誤,可能跟我們開發(fā)人員經(jīng)常做建設性工作,更傾向創(chuàng)造事物,而不是將事物破壞有關;而測試人員在測試更多是一種破壞的過程,甚至是一種施虐,擺出一種把雞蛋打碎攪黃來挑骨頭的姿態(tài)  閱讀全文
          posted @ 2010-12-03 16:00 陳于喆 閱讀(1731) | 評論 (3)編輯 收藏

               摘要: PHP-FPM 是 一個PHP FastCGI進程管理器

          FastCGI是一個可伸縮的,高速地在web server和腳本語言間交互的接口。FastCGI的主要優(yōu)點是把動態(tài)語言和web server分離開來。這種技術允許把web server和動態(tài)語言運行在不同的主機上,以大規(guī)模擴展和改進安全性而不損失生產(chǎn)效率。

          php-fpm可以和任何支持遠端FastCGI的web server工作

          安裝
          php-5.2.13.tar.gz
          php-5.2.13-fpm-0.5.14.diff.gz

          tar zxvf php-5.2.13.tar.gz
          gunzip php-5.2.13-fpm-0.5.14.diff.gz

          patch -d php-5.2.13 -p1 < php-5.2.13-fpm-0.5.14.diff (給php源碼打fpm補丁)

          cd php-5.2.13

          ./configure --prefix=/usr/local/p  閱讀全文
          posted @ 2010-11-30 18:44 陳于喆 閱讀(2821) | 評論 (0)編輯 收藏

               摘要: mysql的官方網(wǎng)站是 http://www.mysql.com

          tar zxvf mysql-5.1.50.tar.gz

          cd mysql-5.1.50

          ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
          --enable-local-infile --with-low-memory

          make && make install

          chmod +w /usr/local/mysql

          chown -R mysql:mysql /usr/local/mysql

          cp support-files/my-medium.cnf /etc/my.cnf  閱讀全文
          posted @ 2010-11-30 15:21 陳于喆 閱讀(411) | 評論 (0)編輯 收藏

               摘要: nginx的官方網(wǎng)站是:http://www.nginx.org

          Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發(fā)的,它已經(jīng)在該站點運行超過兩年半了。Igor 將源代碼以類BSD許可證的形式發(fā)布。盡管還是測試版,但是,Nginx 已經(jīng)因為它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名了。

          nginx的特性
          1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系統(tǒng)下安裝和使用
          2.Nginx 本身只是一個HTTP和反向代理服務器,它無法像Apache一樣通過安裝各種模塊來支持不同的頁面腳本,例如PHP、CGI等
          3.Nginx 支持簡單的負載均衡和容錯
          4.支持作為基本 HTTP 服務器的功能,例如日志、壓縮、Byte ranges、Chunked responses、SSL、虛擬主機  閱讀全文
          posted @ 2010-11-30 12:45 陳于喆 閱讀(2636) | 評論 (0)編輯 收藏

               摘要: 1.卸載rpm包
          通過 rpm -qa | grep httpd 搜索出

          httpd-2.2.3-43.el5.centos.3



          rpm -e httpd-2.2.3-43.el5.centos.3

          如果出現(xiàn)提示有其他相關包依賴此rpm,可以選擇強制卸載

          2.yum 或 apt-get 卸載

          yum -y remove httpd
          yum -y remove httpd* 卸載多個相識的軟件

          3.卸載自編譯包
          make uninstall 或 手動刪除  閱讀全文
          posted @ 2010-11-29 15:14 陳于喆 閱讀(279) | 評論 (0)編輯 收藏

               摘要: NET-SNMP的官方網(wǎng)站是:http://www.net-snmp.org
          先閱讀一下官網(wǎng)的一點說明(詳細見官網(wǎng))
          Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6
          ...
            閱讀全文
          posted @ 2010-11-29 11:34 陳于喆 閱讀(2452) | 評論 (0)編輯 收藏

          posted @ 2010-11-23 09:00 陳于喆 閱讀(281) | 評論 (0)編輯 收藏

               摘要: 剛在一臺新安裝ubuntu的機器上進行vi,出現(xiàn)
          -bash: vi: command not found
          使用vim則可以正常的操作,當然這個應該是vi/vim沒安裝好的原因,重新執(zhí)行命令
          yun -y install vim*
          完整的安裝完畢后則可以正常使用vi/vim

          以前只知道vim是vi的升級版,大部分時候也只使用vi,至于vim和vi的一些區(qū)別上還真的不知道,以下為在網(wǎng)上查找整理的內(nèi)容

          vim,意為VI iMproved,主要的優(yōu)勢體現(xiàn)在以下幾個方面:  閱讀全文
          posted @ 2010-11-22 14:57 陳于喆 閱讀(248) | 評論 (0)編輯 收藏

               摘要: 把我上次的工程所用到的jar包做了一個整理,也加了一些簡單的描述,下面圖是上次工程用到的所有jar吧



          JAR包與描述對照表 注:jar包尾后的版本號不代表當前最高版本
          activation-1.1.jar Sun的JavaBeans Activation Framework(JAF),JavaMail要運行必須依賴于它的支持
          asm-3.0.jar
          asm-commons-2.2.3.jar
          asm-util-2.2.3.jar
          asm是一個輕量級字節(jié)碼處理和分析框架
          alveole-struts2.jar
          alveole-tools.jar

          aspectjtools-1.5.3.jar
          Aspect提供的注釋類庫和相應的解析類庫
          atomikos-util.jar
          數(shù)據(jù)庫提供分布式事務支持
            閱讀全文
          posted @ 2010-11-03 14:59 陳于喆 閱讀(3267) | 評論 (1)編輯 收藏

               摘要: 上周給同事講解了cacti的安裝及其使用時做了一份ppt,在這里將這份ppt簡單梳理一下介紹一下cacti在我們?nèi)粘9ぷ髦械谋O(jiān)控使用

          cacti的結(jié)構(gòu)
          在廣義上來說cacti是一套網(wǎng)絡流量監(jiān)測圖形分析工具,但從狹義來說cacti只是由php語言實現(xiàn)的一個軟件,

          它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持  閱讀全文
          posted @ 2010-11-02 17:28 陳于喆 閱讀(3269) | 評論 (0)編輯 收藏

               摘要: 上次寫的中提到了openVPN,也做了一點點簡單的介紹,有朋友也問了一些關于vpn的問題
          首先,我所購買的vps是基于OpenVZ類型,無法配置標準的VPN(無測試過),部分手機可能無法支持,但OpenVZ支持pptp和openVPN

          請登錄OPENVPN官網(wǎng)查閱最新資料

          ok!在安裝之前請確認一下你購買的vps是否開啟了tun/tap的支持,burst vps默認是不開啟tun/tap的,可以使用cat /dev/net/tun 進行檢查

          如果是沒有權(quán)限的話可以發(fā)個ticket要求客服為你開啟tun/tap

          出現(xiàn)File descriptor in bad state說明tun/tap已經(jīng)開啟,可以開始進行openVPN的安裝配置

          我的vps安裝的系統(tǒng)為CentOS release 5.5 (Final),下面一系列安裝和配置都在此vps上進行,根據(jù) 配置

          一.服務端安裝  閱讀全文
          posted @ 2010-11-01 17:35 陳于喆 閱讀(8926) | 評論 (2)編輯 收藏

               摘要: 先感謝同事梁員外在去年就給我們介紹了VPS,前段時間也購買了一個VPS,使用了一段時間感覺還不錯
          先介紹一下VPS,下面是一些講座的筆記,部分內(nèi)容直接摘自梁員外的ppt

          What is VPS

          VPS是Virtual Private Servers的簡稱,也就是我們說的虛擬專用服務器,在一臺物理服務器上創(chuàng)建多個相互隔離的虛擬專用服務器。這些虛擬服務器以最大化的效率共享硬件、軟件許可證以及管理資源。對其用戶和應用程序來講,每一個VPS平臺的運行和管理都與一臺獨立主機完全相 同,因為每一個VPS均可獨立進行重啟并擁有自己的root訪問權(quán)限、用戶、IP地址、內(nèi)存、過程、文件、應用程序、系統(tǒng)函數(shù)庫以及配置文件。

          國外的主流VPS類型

          國外的主流VPS類型主要是OpenVZ和XEN,先介紹一下OpenVZ

          OpenVZ(Virtuozzo)
          SWsoft公司的商用版虛擬化技術,而OpenVZ 則是基于Virtuozzo的開源項目。多個虛擬服務器在一個內(nèi)核上運行,具有高性能和出色管理等優(yōu)點.   閱讀全文
          posted @ 2010-10-12 15:17 陳于喆 閱讀(7752) | 評論 (4)編輯 收藏

               摘要: 聽DBA的人說,相比oracle,MySQL就是一個玩具級別的數(shù)據(jù)庫,在網(wǎng)易門戶中,DBA基本很少去管理到MySQL的東西,所以我們產(chǎn)品使用到的MySQL的一些配置和優(yōu)化還是需要我們開發(fā)人員自己動手,下面就簡單介紹一下實用的定期優(yōu)化方法

          定期分析表

          ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]

          本語句用于分析和存儲表的關鍵字分布。在分析期間,使用一個讀取鎖定對表進行鎖定。這對于MyISAM, BDB和InnoDB表有作用。對于MyISAM表,本語句與使用myisamchk -a相當。

          MySQL使用已存儲的關鍵字分布來決定,當您對除常數(shù)以外的對象執(zhí)行聯(lián)合時,表按什么順序進行聯(lián)合。

          mysql> analyze table a;
          +--------+---------+----------+-----------------------------+
          | Table | Op | Msg_  閱讀全文
          posted @ 2010-10-10 14:55 陳于喆 閱讀(5624) | 評論 (2)編輯 收藏

               摘要: 如果你的MyIsam表存在大量高并發(fā)的讀寫,那么就可能出現(xiàn)壞表的現(xiàn)象,這是因為MyIsam存儲引擎所決定的,一張損壞的表的癥狀可能是以前某些錯誤

          *.frm 被鎖定不能更改
          找不到*.MYI
          文件意外結(jié)束
          記錄文件損壞

          處理1
          使用MySQL自帶的myisamchk的工具進行修復,myisamchk不僅可以檢查和修復MyIsam表,還可以進行優(yōu)化和分析表,實際上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk進行修復

          myisamchk -r tablename

          其中-r參數(shù)的含義是recover,在以往的應用,這語句幾乎可以解決上面所述碰到的問題,如果還不行,可以使用

          myisamchk -o tablename

          其中-o參數(shù)的含義是--safe-recover,可以進行更安全的修復

          處理2
          使用MySql的CHECK TABLE和REPAIR TABL  閱讀全文
          posted @ 2010-10-10 14:11 陳于喆 閱讀(1986) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 南涧| 蒙山县| 仲巴县| 晴隆县| 新和县| 庆云县| 鹤峰县| 澄迈县| 东丰县| 合肥市| 南和县| 余姚市| 齐河县| 北川| 县级市| 肇庆市| 保靖县| 阿合奇县| 乃东县| 嘉善县| 孟连| 长宁区| 海南省| 读书| 铜陵市| 临朐县| 灵宝市| 弥勒县| 亳州市| 溧阳市| 东山县| 石台县| 兰西县| 抚松县| 万荣县| 思茅市| 峨眉山市| 宜川县| 十堰市| 右玉县| 子洲县|