单点故障的可能

上次说到使用Memcached来存储session,这样就可以不用Tomcat的session同步机制(因为Y这么多年居然一点没变化过),直接做http的负载均衡,前端不管用硬件还是软件实现,系统结构都会显得更为简单,但是一直觉得,依然存在单点故障的可能,想想还是画个图比较清晰,画了几遍,如果除去Cache Cluster,那么木有单点故障的最小结构至少需要服务器十台,当然,我画的是理想化状态,Memcached的logo真TM恐怖……这样的结构,应该不会再有单点故障的可能,而且扩展起来也是很方便的,堆服务器就是了。

较为完美的Tomcat虚拟主机设置方法

之前用过很多种不同的方法来设置虚拟主机,包括放置xml配置文件等等,其实那方法是最难用的,这里给出一个我认为比较完美的方法,

1.在server.xml中设置虚拟主机项,添加host属性在engine中,我们以www.qq.com为例,如下:
<Host name=”www.qq.com” appBase=”/usr/local/webapps/qq.com”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
</Host>
更多设置可自行添加,包括日志等等。

2.在这里我们看到,appbase是”/usr/local/webapps/qq.com”,但是,此目录不是程序根目录,我们在”/usr/local/webapps/qq.com”目录下建立一新目录ROOT,然后将程序放入,才能保证虚拟主机正常启用,也就是说,程序根目录是/usr/local/webapps/qq.com/ROOT。

3.在本地/etc/hosts文件中设置www.qq.com对应IP为127.0.0.1

Tomcat集群和Oracle EMS…..

这两天一直在搞tomcat的集群,网络上很多资料都是过时的,还有很多是错误的,不过没关系,我一般不看中文资料,一是翻译不到位,二是那些SB根本不 知道怎么去翻译一些专有名词,就像洋人始终理解不到成语的意思一样,tomcat的documents里面有一个简单的clustering,先用上,因 为javagroups使用的也是多播,和tomcat自带的这个是一个原理,在网络良好的状态下,这种方式应该没什么问题,虽然是执行的会话all to all copy,tomcat也说了,下一个发行版本会推出适用于大型集群的session复制体系,5.5是beta的,我想是不是要等到6.0哦。
———————————————–
In this release of session replication, Tomcat performs an all-to-all replication of session state. This is an algorithm that is only efficient when the clusters are small. For large clusters, the next release will support a primary-secondary session replication where the session will only be stored at one or maybe two backup servers. In order to keep the network traffic down in an all-to-all environment
———————————————-
总而言之呢,昨天和今天测试的集群看起来就像下面这样,不过呢,我不确定是不是每一个程序都能在上面正常的运行,而且分别是在redhat9和freebsd上面。

Oracle还是有问题,我想可能是我使用了额外的JDK1.1.8导致了错误,虽然表面上看起来一切都是正常的……找不出来问题所在就是最大的问题,下午开会的时候33打电话来了,没接,不知道她找我干嘛呢。

配好了Tomcat和Apache

得来全不费功夫啊,Apache2.1里面专门提供了给Tomcat的ajp接口,三行配置就搞定了Apche对Tomcat的代理,而且可以通过 proxy pass进行负载均衡,完美啊,而且实现http请求的负载均衡,也是很简单的事情,2.1里面更加入了多种cache的支持,包括磁盘缓存,内存缓存, 我在想,2.1一旦出了正式版,squid还有用武之地么?

Reffer:http://tomcat.apache.org/connectors-doc/proxy.html
——————————–
The AJP proxy is a new module based on the standard Http proxy it uses AJP instead of HTTP.
<Location />
ProxyPass ajp://localhost:8009/
</Location>

下面需要配置的就是最困难的oracle了,我还得再去读几遍国外各个网站上的资料了来……中文资料不可信,东抄抄西抄抄,结果TMD全部是错的。

 

重拾FreeBSD

我早料到有这么一天,阿金要我配置unix服务环境,重拾FreeBSD,我已经落后了,小红魔它已经升级到了6.0,5.0的终结版本是5.4,java不适用BSD平台已经成为过去,freebsd甚至有一个java project:http://www.freebsd.org/java/,可是我疑惑了,用6.0还是5.4呢?
————————————
This is the official port of Sun’s Java&#8482; Development Kit for FreeBSD. No known significant bugs exist at this time, but there are no guarantees of usability. However, many commercial companies rely on this port, so it should be safe to use.
————————————

之所以使用freebsd的原因:因为它是最正统的unix,不含有那些什么特有的linux命令,aix命令,solaris命 令等等…..就像吃肉吃多了吃咸菜一样爽口的感觉,我是很不愿意在日记里面提到亦彩的,所谓出其不意,攻其不备,亦彩的服务器架构于 freebsd5.3+apache2+php4+mysql4.1+icecast2+proftpd1.2+openssh4,比较难配置的就是 icecast,其他的还是比较简单,这次的任务有了新内容,要配置oracle10,java,tomcat,有挑战性,我喜欢!不过就是不知道我能不 能忍受256M内存下的oracle运行速度,oracle的标准配置是4G运行内存,看起来只有曙光的机器能担当这个重任……