﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-java的足迹</title><link>http://www.blogjava.net/pesome/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 20:48:37 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 20:48:37 GMT</pubDate><ttl>60</ttl><item><title>论剑归来（一）</title><link>http://www.blogjava.net/pesome/archive/2007/05/21/118980.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Mon, 21 May 2007 12:35:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2007/05/21/118980.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/118980.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2007/05/21/118980.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/118980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/118980.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">应朋友邀请，周六早从上海出发往杭州参加阿里巴巴网侠大会。同行四人，有锐道的</span><span lang="EN-US">macro chen</span><span style="font-family: 宋体;">、杨光（还是我师弟）、移动的王伟旭（特长是</span><span lang="EN-US">linux</span><span style="font-family: 宋体;">和网络安全，也是中国</span><span lang="EN-US">linux</span><span style="font-family: 宋体;">推广的先驱）。一路上，言谈甚欢。老庄给我们订的票，他一早肠胃有恙，仍然坚持把票送到火车站，之后去吊盐水，下午又出现在会场。确实精神可嘉，建议阿里巴巴颁发&#8220;最佳精神奖&#8221;。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">到杭州已是中午，错过了上午大会。下午</span><span lang="EN-US">Robbin</span><span style="font-family: 宋体;">进行</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">技术展望和</span><span lang="EN-US">RoR</span><span style="font-family: 宋体;">实现</span><span lang="EN-US">REST</span><span style="font-family: 宋体;">的演讲，既然是朋友，肯定是要捧场的。</span><span lang="EN-US">Robbin</span><span style="font-family: 宋体;">旁征博引，以其深厚的技术功底和对新技术的敏锐洞察赢得了听众。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">晚上一堆人去聚会，各路豪杰纷至：有阿里巴巴的，有自己创业的，有技术大牛，还有媒体（</span><span lang="EN-US">Infoq</span><span style="font-family: 宋体;">），出版社（博文的周总领</span><span lang="EN-US">3</span><span style="font-family: 宋体;">员大将赴会）。大家互换名片，认识的不免寒暄几句，不认识的也很快就熟捻了，还不时有&#8220;原来你就是&#215;&#215;&#215;&#8221;的惊呼，原来网上就&#8220;互通心曲&#8221;，只是一直没机会认识罢了。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">席间觥筹交错，具体内容暂且不表，只说一件令我感受颇深之事。一个阿里巴巴的员工表现出对公司的无比忠诚，讲起公司的奖惩制度，说是一个员工的绩效不仅跟所在项目相关，还与部门、其它部门甚至整个公司的业绩相关。所以只要是对公司有利的事情，即使与自己现在的工作无关，他们也会去做。按常理来说，这有点不公平，我只能努力做好自己的事情，而如果别人不努力，我就是白做。但如果大家都努力，又变成了共赢。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">这里让我讲一个简单的博弈问题，就是&#8220;囚徒困境&#8221;。</span><span lang="EN-US">A</span><span style="font-family: 宋体;">和</span><span lang="EN-US">B</span><span style="font-family: 宋体;">两个同犯被抓，因为没有其它任何证据和证人，只能让</span><span lang="EN-US">2</span><span style="font-family: 宋体;">人分别交供。如果</span><span lang="EN-US">A</span><span style="font-family: 宋体;">和</span><span lang="EN-US">B</span><span style="font-family: 宋体;">都矢口否认，那么两人无罪释放。如果</span><span lang="EN-US">A</span><span style="font-family: 宋体;">承认，</span><span lang="EN-US">B</span><span style="font-family: 宋体;">不承认；</span><span lang="EN-US">A</span><span style="font-family: 宋体;">是坦白从宽，判</span><span lang="EN-US">1</span><span style="font-family: 宋体;">年；</span><span lang="EN-US">B</span><span style="font-family: 宋体;">抗拒从严，判</span><span lang="EN-US">5</span><span style="font-family: 宋体;">年，反之亦然。如果</span><span lang="EN-US">2</span><span style="font-family: 宋体;">人都承认，</span><span lang="EN-US">ok</span><span style="font-family: 宋体;">证据确凿，各判</span><span lang="EN-US">2</span><span style="font-family: 宋体;">年。如果</span><span lang="EN-US">2</span><span style="font-family: 宋体;">人都是理性人，且没有互通消息，按照博弈，每个人的最优解就是承认，也就是各判</span><span lang="EN-US">2</span><span style="font-family: 宋体;">年。其实对</span><span lang="EN-US">2</span><span style="font-family: 宋体;">人真正有利的就是打死不承认然后都无罪释放，而这种状态在理性人的假设下是很难实现的</span><span lang="EN-US">--</span><span style="font-family: 宋体;">除非有一个教父，一直灌输他们不要出卖同伙。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">马云就是这个&#8220;教父&#8221;！</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">卡内基有篇文章，我总结成一句话就是：用崇高的理想打动别人。据说马云一直是以个人魅力及&#8220;创造中国电子商务的明天&#8221;类似的理想，激励员工的。有了统一的企业文化，员工都不计较个人得失，努力奋进，最终企业和所有员工取得共赢，这绝对是摆脱&#8220;囚徒困境&#8221;的典型案例。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">话说回来，阿里巴巴能让你感受到团队的力量，一群精英在一块做很有价值的事情，对每个人也是很好的锻炼。个人认为，如果有吃苦耐劳的打算，眼光放长远点，又没有其它方面的束缚，阿里巴巴的确是不错的选择。（得向阿里巴巴收代言费，呵呵！）</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">第二天听了多场论道，主要是</span><span lang="EN-US">SAAS</span><span style="font-family: 宋体;">，搜索，分词方面。结合阿里巴巴的战略，我把几点融合起来讲一下。这个下篇再细细道来。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><img src ="http://www.blogjava.net/pesome/aggbug/118980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2007-05-21 20:35 <a href="http://www.blogjava.net/pesome/archive/2007/05/21/118980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sitemesh的问题及解决</title><link>http://www.blogjava.net/pesome/archive/2007/03/11/103175.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Sun, 11 Mar 2007 14:54:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2007/03/11/103175.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/103175.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2007/03/11/103175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/103175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/103175.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">再说</span>
				<span lang="EN-US">sitemesh</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的问题，同样是做</span>
				<span lang="EN-US">openfans</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网摘功能出现的。做好了</span>
				<span lang="EN-US">IE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插件，有</span>
				<span lang="EN-US">fans</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">反馈说弹出页面太大，这也难怪，用了</span>
				<span lang="EN-US">sitemesh</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">head</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">footer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都在页面上，想缩小页面，肯定得把</span>
				<span lang="EN-US">head</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">footer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都去掉，做个干净点的。既然用了</span>
				<span lang="EN-US">sitemesh</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">肯定是希望最方便的搞定这个，而不用动任何逻辑（包括页面逻辑）。这个好办，文档里有说，通过在</span>
				<span lang="EN-US">sitemesh.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中增加</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
				</span>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">mapper<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">param name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">decorator.parameter</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">decorator</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">param name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">parameter.name</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">confirm</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">param name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">parameter.value</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">true</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">mapper</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就能搞定，这样只需要使用参数如</span>
				<span lang="EN-US">saveSnippet.html?decorator=simple&amp;confirm=true</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，就能让它使用指定的</span>
				<span lang="EN-US">decorator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。然后做一个去掉</span>
				<span lang="EN-US">head</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">footer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只保留必要的</span>
				<span lang="EN-US">js</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">css</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">引用的</span>
				<span lang="EN-US">simple.jsp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面，同时在</span>
				<span lang="EN-US">decorator.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中配</span>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">decorator name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">simple</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> page</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">simple.jsp</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;&lt;/</span>
				<span style="COLOR: #000000">decorator</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就应该可以搞定。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但怎么测，就是不使用这个</span>
				<span lang="EN-US">simple decorator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。没办法，只好跟进</span>
				<span lang="EN-US">sitemesh</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">源码中去调试，进入</span>
				<span lang="EN-US">ParameterDecoratorMapper</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类，它继承了</span>
				<span lang="EN-US">AbstractDecoratorMapper</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类，然后有一个</span>
				<span lang="EN-US">init</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法一个</span>
				<span lang="EN-US">getDecorator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法。各打一个断点，</span>
				<span lang="EN-US">init</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法在</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动就会执行，也正常初始化了，</span>
				<span lang="EN-US">getDecorator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法却始终不调用，一时想不出办法。看到篇文章说不自己写</span>
				<span lang="EN-US">sitemesh.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而使用自带的</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">com/opensymphony/module/sitemesh/factory/sitemesh-default.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也可以，于是备份并删除我写的</span>
				<span lang="EN-US">sitemesh.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，居然成功了。为什么我写的就不行呢？差别一是我的简化了很多，只有</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
				<p>
				</p>
				<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #0000ff">&lt;</span>
						<span style="COLOR: #800000">mapper<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
						<span style="COLOR: #ff0000">class</span>
						<span style="COLOR: #0000ff">="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper"</span>
						<span style="COLOR: #0000ff">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           </span>
						<span style="COLOR: #0000ff">&lt;</span>
						<span style="COLOR: #800000">param </span>
						<span style="COLOR: #ff0000">name</span>
						<span style="COLOR: #0000ff">="config"</span>
						<span style="COLOR: #ff0000"> value</span>
						<span style="COLOR: #0000ff">="${decorators-file}"</span>
						<span style="COLOR: #ff0000"> </span>
						<span style="COLOR: #0000ff">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #0000ff">&lt;/</span>
						<span style="COLOR: #800000">mapper</span>
						<span style="COLOR: #0000ff">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						</span>
				</div>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">和刚加的</p>
		</span>
		<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">ParameterDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，二就是顺序，我的</span>
		<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">ParameterDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">放在了</span>
		<span lang="EN-US">ConfigDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">后面，会不会是顺序原因呢，调换一下，果然成功了。问题是解决了，原理呢？再花点时间跟一下代码了解下原理，原来使用了</span>
		<span lang="EN-US">Factory</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它会调用各个配置的</span>
		<span lang="EN-US">Mapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
		<span lang="EN-US">init</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法，并放入</span>
		<span lang="EN-US">map</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，然后到时选择一个</span>
		<span lang="EN-US">Mapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如果符合条件就使用，否则继续往下找。这里就有了顺序的问题，因为我在</span>
		<span lang="EN-US">decorator.xml</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用了<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">decorator </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="default"</span><span style="COLOR: #ff0000"> page</span><span style="COLOR: #0000ff">="default.jsp"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/*.html</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">decorator</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"></p></span>
		<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-font-kerning: 0pt">，这样如果</span>
		<span lang="EN-US">ConfigDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">放在前面，他就先找这个</span>
		<span lang="EN-US">Mapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，一看</span>
		<span lang="EN-US">saveSnippet.html?decorator=simple&amp;confirm=true</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，符合</span>
		<span lang="EN-US">pattern</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">啊，就使用它了，另一个</span>
		<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">ParameterDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根本得不到机会，所以也进不了它的</span>
		<span lang="EN-US">getDecorator</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法。换了顺序就是它先进去，所以执行，其它的</span>
		<span lang="EN-US">url</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也是先找它，但不匹配，就又交给</span>
		<span lang="EN-US">ConfigDecoratorMapper</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。呵呵，问题也解决了，对</span>
		<span lang="EN-US">sitemesh</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的认识又进了一步。</span>
<img src ="http://www.blogjava.net/pesome/aggbug/103175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2007-03-11 22:54 <a href="http://www.blogjava.net/pesome/archive/2007/03/11/103175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>中文问题的解决</title><link>http://www.blogjava.net/pesome/archive/2007/03/11/103174.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Sun, 11 Mar 2007 14:51:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2007/03/11/103174.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/103174.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2007/03/11/103174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/103174.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/103174.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这次给</span>
				<span lang="EN-US">openfans</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做网摘功能，主体程序倒是很快就写完了，另外要做个</span>
				<span lang="EN-US">IE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插件，却碰到了不少问题。</span>
				<span lang="EN-US">IE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插件其实很简单，就是用</span>
				<span lang="EN-US">js</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获得页面的标题、</span>
				<span lang="EN-US">url</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和选择的内容，然后通过弹出窗口，将其送到服务器。这里就有中文的问题了，开始使用</span>
				<span lang="EN-US">escape</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如</span>
				<span lang="EN-US">escape(title)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">形式，</span>
				<span lang="EN-US">request.getParameter</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">碰到中文就为</span>
				<span lang="EN-US">null</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，网上搜了一通，说是可以通过</span>
				<span lang="EN-US">java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编码搞定，但拿到就为</span>
				<span lang="EN-US">null</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了，还怎么换编码？忙活了好几个小时，又是</span>
				<span lang="EN-US">alert</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，又是</span>
				<span lang="EN-US">document.write</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，看上去也没什么问题。不</span>
				<span lang="EN-US">escape</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，直接在浏览器中输入带中文的</span>
				<span lang="EN-US">url</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，拿到的不为</span>
				<span lang="EN-US">null</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了，拿到后，通过</span>
				<span lang="EN-US">new String(str.getBytes("ISO-8859-1"), "UTF-8");</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还真显示正常了。但用</span>
				<span lang="EN-US">window.open</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">又出乱码了。看到文章说还有</span>
				<span lang="EN-US">encodeURIComponent</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法可用，就试了下，把</span>
				<span lang="EN-US">escape</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">换成</span>
				<span lang="EN-US">encodeURIComponent</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">居然搞定了，服务端还是得用</span>
				<span lang="EN-US">new String(str.getBytes("ISO-8859-1"), "UTF-8")</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行处理。注意这里用的</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它的默认编码就是</span>
				<span lang="EN-US">"ISO-8859-1"</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如果改了编码程序也得做相应的改动了。</span>
		</p>
<img src ="http://www.blogjava.net/pesome/aggbug/103174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2007-03-11 22:51 <a href="http://www.blogjava.net/pesome/archive/2007/03/11/103174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php5+mysql5+apache2需要注意的几点</title><link>http://www.blogjava.net/pesome/archive/2007/01/14/93783.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Sun, 14 Jan 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2007/01/14/93783.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/93783.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2007/01/14/93783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/93783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/93783.html</trackback:ping><description><![CDATA[今天为了在本机装个wordpress玩玩，搞了搞php5+mysql5+apache2。网上搜了一篇文档，很快就让php与apache跑起来了，但连mysql始终不行。报错：Call to undefined function mysql_connect()。查了一下半天，就是php关于mysql的ext没配好，但我改了php.ini啊，也把"extension=php_mysql.dll"放出来了。查了好久，看到一篇说php5需要加上"extension=php_mysqli.dll"，试了下果然好了。<br />     然后需要以index.php作为默认的welcomefile(不知道怎么叫，web.xml里是这个)，需要在"DirectoryIndex index.html index.html.var"后加上 index.php就行。<br />然后飞快的装了phpmyadmin、dvbbs的php版。发现php应用的安装的确很是方便，解压，拷贝到htdocs下，马上就能运行了，比java应用简单的多，更别提复杂的要死的企业应用了。这点上java要好好向php学习啊。<img src ="http://www.blogjava.net/pesome/aggbug/93783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2007-01-14 17:34 <a href="http://www.blogjava.net/pesome/archive/2007/01/14/93783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始研究电子支付</title><link>http://www.blogjava.net/pesome/archive/2007/01/12/93459.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Fri, 12 Jan 2007 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2007/01/12/93459.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/93459.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2007/01/12/93459.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/93459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/93459.html</trackback:ping><description><![CDATA[
		<p>项目需要，开始研究电子支付。国外的电子支付提供商，得好好研究它的文档和api。全是e文，只能慢慢看了。</p>
<img src ="http://www.blogjava.net/pesome/aggbug/93459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2007-01-12 15:41 <a href="http://www.blogjava.net/pesome/archive/2007/01/12/93459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>准备给openfans添加spring2.0支持</title><link>http://www.blogjava.net/pesome/archive/2006/12/28/90499.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Thu, 28 Dec 2006 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2006/12/28/90499.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/90499.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2006/12/28/90499.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/90499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/90499.html</trackback:ping><description><![CDATA[  学习了下spring2.0。对openfans而言，有2个比较重要的改进。首先是aspectj的支持，可以方便的使用aspectj语法定义aspect和pointcut了，openfans准备在domain object的自动注入上和权限等方面使用aop。另外就是spring form标签库的引入，现在springmvc也有自己的标签库，以前自己给checkbox和radio写的request.getParameter可以改写了。<img src ="http://www.blogjava.net/pesome/aggbug/90499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2006-12-28 15:15 <a href="http://www.blogjava.net/pesome/archive/2006/12/28/90499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个定时更新cache框架</title><link>http://www.blogjava.net/pesome/archive/2006/12/13/87485.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Wed, 13 Dec 2006 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2006/12/13/87485.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/87485.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2006/12/13/87485.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/87485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/87485.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 应项目需要做了一个定时更新的				cache				框架，采用				spring+quartz				很方便的实现，可以适用任何需要定时才更新的地方，比如静态网页				cache				等。代码很简单：								---------------------------------QuartzCacheHandler-------------------...&nbsp;&nbsp;<a href='http://www.blogjava.net/pesome/archive/2006/12/13/87485.html'>阅读全文</a><img src ="http://www.blogjava.net/pesome/aggbug/87485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2006-12-13 14:46 <a href="http://www.blogjava.net/pesome/archive/2006/12/13/87485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这次做portal的一些总结（二）</title><link>http://www.blogjava.net/pesome/archive/2006/12/13/87468.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Wed, 13 Dec 2006 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2006/12/13/87468.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/87468.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2006/12/13/87468.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/87468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/87468.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接着前面的写。上文主要写了</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">portal</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的使用，这篇写集群方面的体会。现在比较流行的架构就是前端</span>
				<span lang="EN-US">F5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做负载均衡，后面</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">台</span>
				<span lang="EN-US">websphere server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做成集群，各自都有</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，每个</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都向</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">台</span>
				<span lang="EN-US">was</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做转发。这样每台都能独立完成从</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到</span>
				<span lang="EN-US">was</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的流程。一台出现故障，</span>
				<span lang="EN-US">F5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先进行切换，只向正常</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发起请求，这台</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">再进行切换只向同一台</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上的</span>
				<span lang="EN-US">was</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做转发。这次</span>
				<span lang="EN-US">portal</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是采用的这种架构，不妨称为架构</span>
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另一种简单点的架构就是只做</span>
				<span lang="EN-US">F5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">负载均衡，不做</span>
				<span lang="EN-US">was</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集群，每台</span>
				<span lang="EN-US">websphere server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上的</span>
				<span lang="EN-US">HttpServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接受</span>
				<span lang="EN-US">F5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">转发的请求，只向本</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">was</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">转发。这样每台</span>
				<span lang="EN-US">websphere server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">保持独立，相互间没有数据交换和转发。不妨称为架构</span>
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">架构</span>
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">各有优劣，适合不同的需要，下面进行些比较：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从应用部署上看：</span>
						<span lang="EN-US">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用了</span>
				<span lang="EN-US">websphere</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集群，由一个</span>
				<span lang="EN-US">DeployManager</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行分发，部署应用，只需部署一次，由</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分发到几个节点上。而</span>
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每个</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都是独立的，部署应用只能一台台部署，如果</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">较少差别还不明显，如果达到</span>
				<span lang="EN-US">10</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">台以上，一台台部署将是一个比较痛苦的事情。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从</span>
						<span lang="EN-US">session</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上看：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用了</span>
				<span lang="EN-US">websphere</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集群，可以使用集群提供的</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复制，对于一些关键应用（某台服务器宕机，</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也必须保持的应用）很有必要。而对于一些能够允许</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">丢失的应用，才可以使用</span>
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。当然</span>
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也可以关闭</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复制，因为</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复制不管是使用数据库方式还是内存方式，总会消耗一定的性能。具体消耗多少性能，就要看不同的</span>
				<span lang="EN-US">application server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复制方案了，想深入了解，可以看集群方面的文档，我也只记得一个比较简单的</span>
				<span lang="EN-US">round robbin</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从架构复杂性看：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">更为简单，因为没有</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的概念，每台</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都保持独立。而使用了</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有时也会出现莫名奇妙的问题，这当然是由于不了解</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的机制所致，但总归也增加了复杂度，这点在后面的教训中进行说明。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从水平扩展性上看：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">肯定更胜一筹。只要</span>
				<span lang="EN-US">F5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">能支持，多少台</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都没关系。而</span>
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">多台</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做集群，要看</span>
				<span lang="EN-US">websphere</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持的节点数量，应该不会太大。这个如果哪位同学知道，敬请告知。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当然</span>
				<span lang="EN-US">A</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">B</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在服务器较多的情况下是可以共存的，可以考虑几台机器做集群，然后集群间做负载均衡，这样既可以减少部署的复杂度，又可以带来较好的水平扩展。由于没做过更大型的项目，这个也只是我的假象，请做过的同学斧正。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说一说集群中碰到的问题。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先是对各节点的同步：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有时为了方便测试，我们只对其中一个节点进行更改，测试通过再放到其它节点。而如果测试周期较长，有时就会造成节点的不同步，出现各种各样莫名其妙的问题。一个经验就是：<b style="mso-bidi-font-weight: normal">无论如何，在每天下班前要保证各节点的同步，不同步的现象不要过夜。</b></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后是对</span>
						<span lang="EN-US">DM</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的理解：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我现在还只是实践阶段，没有看过相关文档。从意义上看，它控制了相关的配置文件，如果进行节点同步，就会由它把配置文件同步到它管理的节点上。这对配置文件的修改提出了要求。我们开始只修改节点的配置文件而没有修改</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的，结果进行节点同步就会覆盖修改的配置文件，带来很多不必要的工作。经验就是：<b style="mso-bidi-font-weight: normal">或者修改</b></span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">DM</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的配置文件，然后进行节点同步，或者直接同时修改所有节点和</span>
						<span lang="EN-US">DM</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的。</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有关于</span>
						<span lang="EN-US">cache</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">Cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是性能优化的一个有效手段。在单机环境下，最简单的就是内存</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，使用</span>
				<span lang="EN-US">static</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">Map</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就行。而在集群环境中，</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就变的比较复杂了。首先还是从应用需求入手，是否要保持每台机器的</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步。如果只是信息展示等要求不高的</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，不需保证</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的同步，问题也比较简单，自己写内存</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，或者使用开源的</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件如</span>
				<span lang="EN-US">ehcache,oscache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等就可以很好的解决问题。而如果需要</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在几个节点保持同步，就需要特殊的机制了，</span>
				<span lang="EN-US">ehcache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等号称支持分布式</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，但好像需要</span>
				<span lang="EN-US">jgroup</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，配置比较麻烦，我没有用过，有用过的同学请指教。我本来想使用</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">保存，然后进行</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步，后来</span>
				<span lang="EN-US">IBM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">建议使用数据库</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，即自己写代码，</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在数据库中。这样不需要</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步，对象不大，性能也能得到保证，现在用下来效果还可以。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/pesome/aggbug/87468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2006-12-13 13:39 <a href="http://www.blogjava.net/pesome/archive/2006/12/13/87468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这次做portal的一些总结（一）</title><link>http://www.blogjava.net/pesome/archive/2006/11/28/84049.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Tue, 28 Nov 2006 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2006/11/28/84049.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/84049.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2006/11/28/84049.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/84049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/84049.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这次做</span>
				<span lang="EN-US">ibm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">portal</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，算是临危受命。做了几个月的</span>
				<span lang="EN-US">SA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">离职，留下一个功能和性能都有很多问题的项目，临时让我顶上。经过一个多月的紧张工作（经常加班，上班上不了网，也没时间上网），总算功能和性能上都能达到客户要求了。而我也由一个不懂</span>
				<span lang="EN-US">portal</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的人，经过项目中实战，不说成为高手，一般的概念、开发、配置、优化等也都有了很多体会。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这次技术上值得推荐的就是<b style="mso-bidi-font-weight: normal">合理的使用</b></span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">ajax</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，既加快了首页的</span>
				<span lang="EN-US">load</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">速度，又带来了很好的用户体验。开始首页上所有</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都是串行加载，有的</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">比如新邮件，依赖于</span>
				<span lang="EN-US">mail</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统提供的接口。开始这个接口在较大压力下就出现性能瓶颈，后在我们的要求下替换了协议，性能也在</span>
				<span lang="EN-US">1s-2s</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之间。如果采用常规的办法，加上</span>
				<span lang="EN-US">wps</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">验证、运算，显示主题、皮肤，加载所有</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，响应时间肯定在</span>
				<span lang="EN-US">10s</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我在</span>
				<span lang="EN-US">openfans</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用了</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，有些经验，所以决定采用异步加载：首页</span>
				<span lang="EN-US">load</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时一些</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">直接显示正在</span>
				<span lang="EN-US">loading</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的字样，在</span>
				<span lang="EN-US">body onload</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时再使用</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填充内容；使用</span>
				<span lang="EN-US">iframe</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，也是</span>
				<span lang="EN-US">src</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先指向一个静态的正在</span>
				<span lang="EN-US">loading</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面，</span>
				<span lang="EN-US">body onload</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时再替换</span>
				<span lang="EN-US">src</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到实际地址（这是</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式的一种）。这样首页登录实际上只经过</span>
				<span lang="EN-US">wps</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内部的验证和显示，所有业务逻辑都是加载成功后再并行进行。实际表现效果就是：头上的主题很快出来，一块块区域显示正在</span>
				<span lang="EN-US">loading</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字样，性能快的</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很快出来，需要几秒的</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">随后出来，而不是让用户傻等</span>
				<span lang="EN-US">10</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">多</span>
				<span lang="EN-US">s</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">再一下全部显示。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同时也能解决页面刷新问题和获取返回值的问题。比如前面显示新邮件的</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，用户点击了一封邮件，新邮件数应该减</span>
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，刚点击的邮件也应该上页面上消失。原始的做法就是刷新整个页面，既加大服务器压力，又带来很差的用户体验。使用</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在点击后</span>
				<span lang="EN-US">1s</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（或者更长，这取决于邮件系统对点击操作的响应快慢）刷新</span>
				<span lang="EN-US">div</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内容，用户甚至感觉不到内容已经更新。其它</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也不需要重新载入，大大减轻服务器的压力。有的操作需要提交给其它系统，而且可能成功可能失败，这就需要获得返回值。如果使用普通的</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交，需要更新整个页面。而使用</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交，可以方便的获得其返回值，进而显示不同的提示。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另一个架构上的特点就是</span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">portal</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器职责单一</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。开始所有的业务逻辑都是写在</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里，加重了</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器的压力。我进来后做的一个大的规划就是，把业务逻辑抽离到其它</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上，然后通过</span>
				<span lang="EN-US">ajax</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">加载到</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中。这样既可以充分利用服务器资源（新的</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用单独的内存空间和线程池），又使得</span>
				<span lang="EN-US">portal</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器职责更单一：仅进行验证、权限控制、主题、皮肤和</span>
				<span lang="EN-US">portlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的展示。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先写这么多。因为使用了</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">台</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做集群，在分布式环境下，开发也有了更多的要求（比如</span>
				<span lang="EN-US">cache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），后一篇文章再细细道来。</span>
		</p>
<img src ="http://www.blogjava.net/pesome/aggbug/84049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2006-11-28 14:49 <a href="http://www.blogjava.net/pesome/archive/2006/11/28/84049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序之外</title><link>http://www.blogjava.net/pesome/archive/2006/11/06/79484.html</link><dc:creator>pesome</dc:creator><author>pesome</author><pubDate>Mon, 06 Nov 2006 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/pesome/archive/2006/11/06/79484.html</guid><wfw:comment>http://www.blogjava.net/pesome/comments/79484.html</wfw:comment><comments>http://www.blogjava.net/pesome/archive/2006/11/06/79484.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/pesome/comments/commentRss/79484.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pesome/services/trackbacks/79484.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">难得有空，写篇程序之外的文章，关于压力的，也是自己近来的亲身体会。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">众所周知软件这行压力是很大的。各种各样的问题层出不穷，每天上班工作内容都是排的满满的，遇到突发问题就得加班。如果不及时进行疏解，积累到一定的程度，就可能产生一定的负面问题，比如上班精神状态差、注意力不能集中、遇事喜欢逃避等等。我就亲身经历了这样的状况，明知自己工作积极性差、效率很低，但也很难一下子找回自我。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一次偶然的出游让我从中很快走了出来。一个亲戚考上厦大的博士，我请了</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">天的假，利用周末时间顺便去厦门旅游。厦门依山傍海，的确是旅游的好去处。晚上到海边，凉风习习，光脚沿着沙滩走过，任起落的潮水在腿上脚上留下层层薄沙。内心也变得平静，能够感受到海的呼吸。天地间仿佛只剩下我和大海，在进行心灵的交流，俗世烦扰皆抛诸脑后，只剩下对海的依恋。白天去爬南普陀山，并不太高，慢慢爬到山顶，整个思明区尽收眼底，远处一艘快艇在海面掠过，留下一条美丽的浪花。然后顺山而下到植物园，途径无数奇花异草、层天老树，走得累了，找个湖边石凳休息一下，人也觉得轻松愉快。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">经过大自然的洗礼，回到单位，人的精神面貌焕然一新，抱着积极的心态处理事情，很多问题迎刃而解。压力测试做的很累，经常要熬夜，但通过一轮轮的测试，逐步定位到性能问题所在，自己也学了不少相关知识，想想也就没那么烦了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做事的方式，也有了长进。我现在信奉人一时只做一件事效率最高的原则。事情再多，也是一件件做，每天安排好近日的工作，并排个优先级，什么是要亲自处理的，什么是让别人处理的，什么是需要预先通知他人的，需要什么资源，每件事情的预计时间如何，需要如何</span>
				<span lang="EN-US">check</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等等。做好一件事就打个勾，做到心中有数。如果事情有延误，分析是什么原因，该如何补救，而不要有太大的心理负担，自己尽力了就好，是自己的责任就要勇敢扛下，死不了人的。这其实是很简单的原则，谁都能够学会，但的确很管用。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">总结：压力是无处不在的，关键在于如何应对和排解。用积极的心态和恰当的方法面对，压力也就没那么大了。感觉压力积累到一定程度，在还未影响正常工作之前就先想办法排解，出去旅游、运动等都是缓解压力的好办法。</span>
		</p>
<img src ="http://www.blogjava.net/pesome/aggbug/79484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pesome/" target="_blank">pesome</a> 2006-11-06 22:27 <a href="http://www.blogjava.net/pesome/archive/2006/11/06/79484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>