2007-07-27

Java网络服务如何能长时间稳定运行呢?

今天,把Code里面的e.printStackTrace全部用自己的log函数替换掉了,因为貌似System.out.println很浪费时间,而且大量的异常输出到控制台会降低程序的稳定性。

我们的项目里面需要一个webserver,但是我实在对Jsp+Tomcat的性能不放心,自己写了一个非常精简的webserver。性能我很满意,用ab进行测试,速度可以跟同台服务器上lighttpd静态文件的速度媲美。

在每日访问量10万以内的情况下,服务两个星期左右会产生一次锁死,kill也无法关闭进程。只有利用kill -9才能关闭进程。说实话,这种锁死频率倒还可以接受。然而在每日访问量峰值达到20万的时候,高峰日可能会有2-3次的锁死,这让我很挠头。我想了很多办法,还是没有明显的改善。

今天去掉了e.printStackTrace,希望明天webserver的稳定性可以提高。

有对这方面经验丰富的朋友么?请告诉我Java网络服务如何能长时间稳定运行呢?谢谢!

Technorati technorati tags: , , , ,



2007-07-23

正式发布Google混搭编辑器(Google Mashup Editor)中文文档

查看地址: Google混搭编辑器(Google Mashup Editor)中文文档

Google混搭编辑器(Google Mashup Editor)是一套用来开发混搭应用的Web开发工具,它是一套函数库,也是一个IDE。不管你的应用本身多复杂,用了多高深的技术,值得庆幸的的是我们有Rss/ATOM,利用他们我们可以举重若轻的把不同公司,不同利益集团的产品粘合在一起,创造新的视角,新的应用模式。这就是Google混搭编辑器(Google Mashup Editor)的意义。

为了便于国内的开发者使用Google混搭编辑器(Google Mashup Editor),我在学习过程中制作了这个中文文档,完全翻译了产品概述入门指南两个部分,因为这两个部分可以让你充分了解Google混搭编辑器(Google Mashup Editor)的思想和用法。标签参考文档、操作数据、过滤数据、事件处理以及JavaScript API,留待日后慢慢翻译完善。

之前,我还翻译了Google Maps API的文档,地址在Google Maps API中文同步文档。欢迎有兴趣的朋友查看。

今后的翻译计划是 Google AJAX Search API文档和 Google AJAX Feed API

Technorati technorati tags: , , , , ,



2007-07-15

[搜索引擎友好之路]搜索引擎优化常见问题与回答

[搜索引擎友好之路]是我准备写的一本书,现在大部分网站都有丰富的内容,但是他们为了得到流量去尝试那些搜索引擎作弊方法,往往是一时得到好处,最后被搜索引擎屏蔽。我们倡导的与搜索引擎友好的优化方式就是试图更好的展现你的内容,达到网站和搜索引擎共赢的局面。下面的问题是一次去给客户做培训后,客户提出的问题和我们的回答。

1、程序生成很多的静态内容链接自己,算不算作弊?

一个行为算不算作弊,主要是度的问题。生成很多垃圾的静态内容(采集来的,胡乱生成的),只要达到一定的量,一般是会被判定为内容重复或者作弊的,可能会 被降低权重或者删除索引。实际上我们知道现在很多网站自己的内容很丰富,把自己的内容展现好了,就会带来很多好处,不需要去胡乱采集。

2、flash对网站收录的影响

flash本身没有任何不好的影响。而常见的错误的行为是对flash的滥用。
比如,整站全部用flash,设计者或者唯界面论者可能会这么做。其实这样并不好,第一是速度往往会很慢,而且有可能会长时间等待;第二是干扰用户习惯, 很多人打着提高用户感受的旗号去滥用flash,那样做出来的作品,如果说欣赏或者只是试用往往还不错,长期使用用户往往忍受不了;第三是整站所有的内容 无法被搜索引擎收录。
还有很常见的滥用是内容页面很丰富,但是首页只有一个flash而没有任何文本链接可以帮助用户进入下一级页面。这类问题往往出现在一些大公司的网站中。 虽然确实很美观,但是问题也很多。第一也是速度,网民多数没有耐心,看到一个长长的loading条就会迅速离开;第二,如果用户不安装flash插件, 就无法看到首页,从而无法进入本无需flash的内容页;第三,搜索引擎无法穿过首页去访问后面的页面。所以我们会发现很多公司的网站pagerank很 高,但是内容页面完全没有pagerank。所以在搜索引擎搜索产品名字,往往是第三方的网站排在前面。这类网站最好在下端放一个二级栏目的导航条,至少 也要放一个“点击这里跳过flash直接进入内容”的链接。

3、no script有用么?

当然有用。现在很多网站喜欢用Javascript特殊效果或者Ajax,这本身没并不是问题。但是,如果用Javascript来显示网站的导航,就有 两个问题,第一,对于不打开Javascript的用户,他们无法进入网站的内部;第二,搜索引擎往往无法收录Javascript展现的链接。no script可以解决这个问题。包含在 noscript标记内的代码会在不打开Javascript的用户的浏览器上面展现,搜索引擎也可以从中获取导航信息。
但是,最好的选择还是,导航本身使用标准HTML代码,导航的特殊效果用css和Javascript实现。以后我们会有专门的文章阐述Ajax网站如何进行搜索引擎优化。

4、更新频率应该多高才适合?

更新频率理论上当然是越快越好,但是并不推荐没有内容胡乱更新。现在大部分网站的内容都很丰富,更新频率已经足够了。

5、js生成的更新,能不能被收录?

跟Javascript有关的问题,答案其实都一样,用Javascript生成的链接,大部分搜索引擎的爬虫不会去抓取,自然也就不会被收录了。

6、不愿和外部网站交换链接会有什么影响?

不愿意交换链接自然对Pagerank有不好的影响。但是如果你的内容确实好,自然会有用户主动链接你的页面,这样你的PageRank自然会得到提高。

7、抓外站新闻对SEO有用么?

用处不大,抓外站新闻得到的内容实际上都是所谓的重复内容,价值并不高。

8、和外站交换链接,放什么位置重要么?

重要,当然是Pagerank越高的页面越好,位置越前越好。

9、大型网站会给其他网站做链接么?要多少钱?

交换链接一般是双赢,所以只要你的网站质量达到一定水平,交换链接并不难。一般不要钱,要钱的反而需要警惕,这是搜索引擎禁止的行为。

10、在网站中,同一级的页面,是PageRank越高,抓取频率越高么?

对,Pagerank、整站信用级别和页面更新频率共同影响抓取频率,所以Pagerank越高抓取频率越高。

11、Robot.txt对SEO有什么影响?

Robot.txt很有价值,但是一般被站长低估和误解。很多人认为只有防止搜索引擎技术抓取的时候才有用。但是实际上正确使用Robot.txt对 SEO很有好处,比如重复内容用不同形式表现是经常需要的,而这种情况很容易被搜索引擎判定为重复内容堆砌。正确利用Robot可以引导搜索引擎只收录首 选内容这样就不会有作弊嫌疑了。(参见:google网站管理员blog的文章“巧妙地处理内容重复”)
除了处理重复外,Yahoo允许你在Robot.txt文件里面用Crawl-delay:参数设定抓取频率(参看:如何控制Yahoo! Slurp蜘蛛的抓取频度)。Sitemap协议支持你在Robot.txt文件里填写Sitemap参数(参看:Specifying the Sitemap location in your robots.txt file)。

12、二级域名能有多大的好处?

好处不大,如果用户喜欢的话,就用吧。

13、用户页面的url,用文字还是数字好?

如果用户名不允许中文,那么文字比较好,虽然汉字也可以用在url中,但是总是有些浏览器的支持不够好。如果用户名允许中文,就用数字吧。基本上这不是一个很重要的选择,虽然搜索引擎技术也会把url里面的文字当作可被查询的内容。

14、flash meta data对SEO有何影响?

未来可能很重要,但是现在应该还没有多少搜索引擎支持这项技术。

15、爬虫有没有关于Ajax的抓取计划?

Googlebot也就是Google的标准蜘蛛,是不支持Javascript的。但是Mediapartners-Google也就是Google Adsense的爬虫,实际上是支持Javascript的。这也就是说技术层面考虑支持Javascript并不是一个问题。但是限于效率和任务优先级 的考虑,Google暂时还没打算让标准蜘蛛Googlebot支持Javascript。
百度的爬虫支持一部分Javascript,但是由于技术和效率的限制,相信百度也不能抓取100%的Javascript内容。

16、在js代码中放url有用么?

答案显而易见,没用。

Virushuo对本文亦有贡献

Technorati technorati tags: , , , , , , ,