<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[海阔天空]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cpzhong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cpzhong]]></copyright><item><title><![CDATA[如何抓获JVM crash的幕后黑手？（三）]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/8557709</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/8557709</guid><author>cpzhong</author><pubDate>Wed, 30 Jan 2013 22:21:12 +0800</pubDate><description><![CDATA[通过前两篇如何抓获JVM crash的幕后黑手？（一） 如何抓获JVM crash的幕后黑手？（二）的分析，如果还不能查到原因，那很有可能不是应用自身的问题，而是系统将应用强行kill了，如何判断是系统强行kill的呢？
      我们需要先了解下linux的一个oom-killer机制。linux 
oom-killer是一种自我保护机制，当系统分配不出内存时会触发这个机制，由操作系统在己]]></description><category></category></item><item><title><![CDATA[架构相关领域的学习材料]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7687649</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7687649</guid><author>cpzhong</author><pubDate>Sun, 24 Jun 2012 15:35:22 +0800</pubDate><description><![CDATA[对于工程师来说，到一定阶段后往往会遇到成长瓶颈。要突破此瓶颈，需要在所属技术领域更深入学习，了解本领域的问题本质、方法论与设计理念、发展历史等。以下提供一些架构相关领域的学习材料，附上简单点评，供有兴趣的工程师参考。希望大家能通过对这些领域的了解和学习，掌握更多system design principles，在自己的工作中得心应手，步入自由王国。
1.        Operating Sys]]></description><category></category></item><item><title><![CDATA[Shell中的grep、awk和sed的常用命令和语法]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7589085</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7589085</guid><author>cpzhong</author><pubDate>Mon, 21 May 2012 22:57:29 +0800</pubDate><description><![CDATA[Grep的常用命令语法
1. 双引号引用和单引号引用
在g r e p命令中输入字符串参数时，最好将其用双引号括起来。例如：”m y s t r i n g”。这样做有两个原因，一是以防被误解为 s h e l l命令，二是可以用来查找多个单词组成的字符串，例如：”jet plane”，如果不用双引号将其括起来，那么单词 p l a n e将被误认为是一个文件，查询结果将返回”文件不存在”的错]]></description><category></category></item><item><title><![CDATA[Httpclient的会话保持引起的线程安全问题]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7417336</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7417336</guid><author>cpzhong</author><pubDate>Sun, 01 Apr 2012 18:51:04 +0800</pubDate><description><![CDATA[这两天线上出现一个问题，通过httpclient来抓取页面，服务端在页面渲染的时候出现了串号现象。
首先看下代码，controller中代码如下：
request.getSession().setAttribute("sid", id);
vm页面再通过$!request.session.getAttribute("sid")获取参数值，这代码很常见，看起来单线程和多线程并发都不会有问题，因]]></description><category></category></item><item><title><![CDATA[两种SOA平台建设方案比较]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7196022</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7196022</guid><author>cpzhong</author><pubDate>Sun, 19 Feb 2012 14:11:29 +0800</pubDate><description><![CDATA[为了能支撑业务迅速发展，应用系统需要重构，做相应的分层和拆分，原来在一个系统内部能处理完的逻辑现在可能分散到多个系统协作完成，系统间调用的方式有很多种，比如Http,Hession,RMI,WebService，还有同步和异步的区分，可以想象一下如果不通过SOA平台进行封装和统一，光这些调用方式就会让系统变得很乱，也会增加学习和开发成本。如何做SOA化？下面对两个方案进行了比较（整理自blueda]]></description><category></category></item><item><title><![CDATA[两种系统间通信方式的比较]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7272299</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7272299</guid><author>cpzhong</author><pubDate>Sun, 19 Feb 2012 14:05:07 +0800</pubDate><description><![CDATA[对分布式java应用来说，如何实现系统间通信？常见的两种典型方法如下：（整理自bluedavy的《分布式java应用：基础和实践》）





系统间通信方式
基于消息
基于远程调用


协议
TCP/IP、UDP/IP
HTTP



java实现

TCP/IP+BIO:socket和serverSocket
TCP/IP+NIO:SocketChann]]></description><category></category></item><item><title><![CDATA[如何抓获JVM crash的幕后黑手？（二）]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7193619</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7193619</guid><author>cpzhong</author><pubDate>Thu, 12 Jan 2012 13:23:28 +0800</pubDate><description><![CDATA[其实通过上一篇所讲的core dump方法可以比较方便找到jvm crash问题所在，但这种方法适合crash比较频繁，容易获取到core dump文件，如果没有这个文件，那怎么可以查到问题呢。现在回过头想想通过跟踪crash时的apache日志，其实也能找到造成crash的请求，下面是某次crash时的日志：
[07/Jan/2012:07:52:40 +0800] "GET /a.xhtml]]></description><category></category></item><item><title><![CDATA[如何抓获JVM crash的幕后黑手？（一）]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/7191811</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/7191811</guid><author>cpzhong</author><pubDate>Wed, 11 Jan 2012 14:35:20 +0800</pubDate><description><![CDATA[最近几天线上jboss服务器经常莫名地突然停止运行，导致半夜都被报警短信吵醒，元旦几天也基本就在收报警，然后重启系统。查看jboss控制台错误日志，发现只有下面一行：
/opt/.../jboss/bin/run.sh: line 181: 26430 段错误                  "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_END]]></description><category></category></item><item><title><![CDATA[为什么CMS GC时出现Concurrent Mode Failure？]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6912272</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6912272</guid><author>cpzhong</author><pubDate>Thu, 27 Oct 2011 22:59:41 +0800</pubDate><description><![CDATA[并发收集器（concurrentcollector）指的是回收年老代和持久代时，采用多个线程和应用线程并发执行，减少应用停顿时间，但如果参数设置不当，容易出现Concurrent ModeFailure现象，此时JVM将采用停顿的方式进行full gc，整个gc时间相当可观，完全违背了采用CMS GC的初衷。
    出现此现象的原因主要有两个：一个是在年老代被用完之前不能完成对无引用对象的回收]]></description><category></category></item><item><title><![CDATA[企鹅快跑——腾讯敏捷历程揭秘]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6847696</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6847696</guid><author>cpzhong</author><pubDate>Thu, 06 Oct 2011 18:39:49 +0800</pubDate><description><![CDATA[腾讯这只企鹅在13年的成长历程中，不断长大，但却并不笨拙，这其中的秘密就在于研修了敏捷方法！本文就将为您揭开其中不为人知的敏捷故事。

天生敏捷基因
企鹅出生在极速变化的互联网行业，出生之时便面临着四大挑战。
海量用户的需求：企鹅服务于数以亿计的互联网用户，在保证业务稳定]]></description><category></category></item><item><title><![CDATA[JVM GC的几个叫法]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6835549</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6835549</guid><author>cpzhong</author><pubDate>Fri, 30 Sep 2011 17:32:02 +0800</pubDate><description><![CDATA[根据GC所处的代，试图将GC叫法归纳如下：
young generation
young gc == minor gc
tenured generation
old gc == cms gc == major gc == full gc 
 
full gc都是串行方式的，耗时很长，所以我们需要尽量减少发生频次。]]></description><category></category></item><item><title><![CDATA[JVM垃圾收集器异同]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6834964</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6834964</guid><author>cpzhong</author><pubDate>Fri, 30 Sep 2011 17:12:31 +0800</pubDate><description><![CDATA[JVM 垃圾收集器有3类，这里主要介绍我们常用的 并行和并发收集器：
The Throughput Collector （也叫并行收集器）
串行收集器在GC时会停止其他所有工作线程（stop-the-world），CPU利用率是最高的，所以适用于要求高吞吐量（throughp]]></description><category></category></item><item><title><![CDATA[记一次JVM GC日志分析]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6831751</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6831751</guid><author>cpzhong</author><pubDate>Thu, 29 Sep 2011 22:30:34 +0800</pubDate><description><![CDATA[这几天在准备升级JDK版本到1.6，对目前线上JVM（版本是1.5.0_08-b03） GC日志进行了分析，发现一些参数设置不太合理的地方，有待后续通过数据来进行验证。
1.原始GC日志（通过JVM配置GC Print参数获取GC日志）
...
695.775: [GC 695.776: [ParNew: 130944K->0K(131008K), 0.0174100 secs] 43296]]></description><category></category></item><item><title><![CDATA[maven编译插件maven-compiler-plugin误将WARNING当ERROR]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6761576</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6761576</guid><author>cpzhong</author><pubDate>Thu, 08 Sep 2011 21:02:29 +0800</pubDate><description><![CDATA[【问题描述】
经常碰到这样的问题，在eclipse中编译是正常的，但是在maven编译时不通过，错误信息如下：
E:\workspace\*.java:[760,31] 警告：sun.misc.BASE64Encoder 是 Sun 的专用 API，可能会在未来版本中删除]]></description><category></category></item><item><title><![CDATA[开发自测到底如何做？]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6673733</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6673733</guid><author>cpzhong</author><pubDate>Tue, 09 Aug 2011 21:36:44 +0800</pubDate><description><![CDATA[开发自测到底要不要做？
         有些同学会觉得开发职责是编码，如果还做自测，那测试做什么，难道要失业。其实我觉得不是这样，开发自测和测试的侧重点是不一样的，开发自测不是为了替代测试的工作。我们都知道bug越早发现，解决的成本越低，风险也越小。测试发现的bug要确认，提]]></description><category></category></item><item><title><![CDATA[Android emulator模拟器启动错误]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6667888</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6667888</guid><author>cpzhong</author><pubDate>Mon, 08 Aug 2011 00:00:25 +0800</pubDate><description><![CDATA[问题描述
启动时报如下错误：
invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe.
Hint: use '@foo' to launch a virtual dev]]></description><category></category></item><item><title><![CDATA[面试前五问自己]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6638019</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6638019</guid><author>cpzhong</author><pubDate>Wed, 27 Jul 2011 20:22:57 +0800</pubDate><description><![CDATA[面试时除了会考察一些专业知识外，还会被问及一些个性及职业规划方面的问题，有点像我们产品中的功能性需求和非功能性需求一样。其实不是为了面试才去准备这些问题的答案，而是我们自身应该考虑的，对这些有了清晰的认识，才能避免少走弯路。1.个人职业规划比如说是走技术线（架构师、技术专家），还]]></description><category></category></item><item><title><![CDATA[今天maven install时碰到的两个问题（堆溢出和编译错误）]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6621030</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6621030</guid><author>cpzhong</author><pubDate>Wed, 20 Jul 2011 19:59:06 +0800</pubDate><description><![CDATA[问题1.maven install时出现，日志如下：系统资源不足。有关详细信息，请参阅以下堆栈追踪。java.lang.OutOfMemoryError: Java heap space        at com.sun.tools.javac.util.List.prepen]]></description><category></category></item><item><title><![CDATA[maven仓库repository地址最佳声明方式]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6620404</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6620404</guid><author>cpzhong</author><pubDate>Wed, 20 Jul 2011 18:51:28 +0800</pubDate><description><![CDATA[maven中的仓库repository地址可以在以下几个地方声明：%M2_HOME%\conf\settings.xml，这是机器级的，会影响到所有使用此工具的构建\.m2\settings.xml，这是用户级的，会影响到当前用户的构建定义在pom.xml里，这是项目级的，会影响]]></description><category></category></item><item><title><![CDATA[深度分析HTML5在移动开发方面的发展状况]]></title><link>https://blog.youkuaiyun.com/cpzhong/article/details/6602806</link><guid>https://blog.youkuaiyun.com/cpzhong/article/details/6602806</guid><author>cpzhong</author><pubDate>Wed, 13 Jul 2011 13:50:22 +0800</pubDate><description><![CDATA[“我们正在用HTML5编写我们下一套移动产品。”“是啊，这些天很多人在玩着Appcelerator，我也在玩着。”“嗯，但这并不是我要说的那种HTML5产品。”最近，我有很多类似的交流对话，可能因为我正在开发一套HTML5的应用吧。就像2005年的“AJAX”，“HTML5”这个]]></description><category></category></item></channel></rss>