于吉吉的技術(shù)博客

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

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

          java

          posted @ 2013-07-05 17:18 陳于喆 閱讀(4538) | 評(píng)論 (6)  編輯

          posted @ 2011-08-21 15:55 陳于喆 閱讀(6435) | 評(píng)論 (0)  編輯

          posted @ 2011-08-15 16:51 陳于喆 閱讀(6344) | 評(píng)論 (13)  編輯

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

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

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

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

          對(duì)org.springframework.remoting.caucho.HessianServiceExporter進(jìn)行重寫

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

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

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

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

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

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

          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 陳于喆 閱讀(464) | 評(píng)論 (0)  編輯

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

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

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

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

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

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

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



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

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

               摘要: 先感謝同事renial的<解析xml時(shí)遇到的一些問題>技術(shù)分享,下面是一些記錄和實(shí)際操作

          1.使用Dom4j解析大文件時(shí)內(nèi)存溢出的問題

          問題是這樣的,當(dāng)我用dom4j去解析一個(gè)幾十M的xml時(shí),就出現(xiàn)out of memory.當(dāng)然了,這也是根據(jù)你的機(jī)器性能而定的,我們都知道dom4j在各種DOM解析器中應(yīng)該算是性能最好的,連大名鼎鼎的Hibernate都是用dom4j來解析XML配置文件的
          問題出在于使用dom4j的SAXReader是會(huì)把整個(gè)XML文件一次性讀入,如果XML文件過大就會(huì)拋出out of memory,但即使是使用SAXParser批量讀入解析,但它也是一次解析完,假設(shè)XML文件有幾萬條數(shù)據(jù),那么解析后就必須在內(nèi)存放入這幾萬條對(duì)象.

          常用的Dom4j文件解析方式:

          InputStream is = new FileInputStream(filePath);
          SAXReader reader = new SAXReader(); //將整個(gè)XML構(gòu)建為一個(gè)Document 閱讀全文
          posted @ 2010-09-28 17:10 陳于喆 閱讀(15021) | 評(píng)論 (2)  編輯

          主站蜘蛛池模板: 杭锦后旗| 罗田县| 志丹县| 贞丰县| 原阳县| 博罗县| 琼结县| 榆林市| 福安市| 治多县| 子长县| 安吉县| 海安县| 民勤县| 无为县| 蒲城县| 精河县| 黄大仙区| 射洪县| 芜湖市| 清原| 奉节县| 太仓市| SHOW| 莎车县| 山阳县| 内黄县| 岳西县| 兰州市| 类乌齐县| 丹寨县| 巴东县| 南昌县| 南通市| 原阳县| 福泉市| 东乡族自治县| 万全县| 当阳市| 县级市| 新沂市|