于吉吉的技術博客

          建造高性能門戶網

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

          12 2010 檔案

               摘要: 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 陳于喆 閱讀(330) | 評論 (0)  編輯

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

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

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

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

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

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

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

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

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

          // TO DO1
          } catch (e) {

          // TO DO2
          }
          }


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

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

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

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

          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 陳于喆 閱讀(1234) | 評論 (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)  編輯

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

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

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

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

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

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

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

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

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

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

          主站蜘蛛池模板: 枣庄市| 杭锦后旗| 台东县| 娱乐| 竹溪县| 天峻县| 建昌县| 句容市| 宜兴市| 滁州市| 土默特右旗| 高青县| 崇文区| 郑州市| 吉林省| 东兰县| 浦城县| 策勒县| 时尚| 景德镇市| 迁安市| 彭泽县| 靖安县| 马龙县| 克拉玛依市| 嘉祥县| 隆德县| 宽城| 山东| 赞皇县| 枣强县| 彭阳县| 吐鲁番市| 威宁| 水城县| 东至县| 济南市| 洛浦县| 襄樊市| 深水埗区| 白银市|